繁体   English   中英

收到错误“查询输入必须至少包含一个表或查询。”

[英]Getting the error “Query input must contain at least one table or query.”

我正在使用Visual Studio 2010创建一个表单,您可以在其中编辑,删除或插入来自Access数据库的数据。 当我尝试在Web浏览器中运行表单时,出现错误“查询输入必须至少包含一个表或查询”。 我相信问题出在我的代码/语法上,但是我无法确定问题的原因。 我在下面添加了一些代码,任何帮助/提示将不胜感激。 谢谢。

<asp:AccessDataSource ID="AccessDataSource1" runat="server" 
            DataFile="~/App_Data/database.accdb" SelectCommand="SELECT * FROM [database]"
            DeleteCommand="DELETE FROM [database] WHERE ([EmployeeID] = @EmployeeID)"
            UpdateCommand="UPDATE [database] SET [Phone]=@Phone,[FirstName] = @FirstName, [LastName]= @LastName  WHERE ([EmployeeID] = @EmployeeID)"
            InsertCommand="INSERT INTO [database] (Phone,FirstName,LastName) VALUES (@Phone,@FirstName,@LastName) WHERE ([EmployeeID] = @EmployeeID)">
            <InsertParameters>
             <asp:formparameter name="Phone" formfield="tbPhone" />
             <asp:formparameter name="FirstName"  formfield="tbFirstName" />
             <asp:formparameter name="LastName"  formfield="tbLastName" />
            </InsertParameters>
        </asp:AccessDataSource>
        <asp:GridView ID="gvEmployee" runat="server" AutoGenerateColumns="False" 
            DataSourceID="AccessDataSource1" DataKeyNames="EmployeeID"
            AutoGenerateDeleteButton="True" AutoGenerateEditButton="True" AutoGenerateInsertButton="True"
            EmptyDataText="There are no data records to display." Width="372px">
            <Columns>
                <asp:BoundField DataField="Phone" HeaderText="Phone"
                     SortExpression="Phone" />
                <asp:BoundField DataField="FirstName" HeaderText="FirstName" 
                    SortExpression="FirstName" />
                <asp:BoundField DataField="LastName" HeaderText="LastName" 
                    SortExpression="LastName" />

            </Columns>
        </asp:GridView>        
    </td>
     </tr>
    <tr>
    <td>
        Phone Number: 
        <asp:TextBox ID="tbPhone" runat="server"></asp:TextBox><br /> 
        First Name:
        <asp:TextBox ID="tbFirstName" runat="server"></asp:TextBox> <br /> 
        Last Name:&nbsp;
        <asp:TextBox ID="tbLastName" runat="server"></asp:TextBox> <br />           
        <asp:button id="Button1" runat="server" text="New Employee" onclick="InsertEmployee" />
    </td>
    </tr>

什么是[数据库]? 那是你的桌子名字吗? 您需要指定一个表名,例如PERSONS或Employees?

SELECT * FROM [database]

尝试类似

SELECT * FROM Employee

立即尝试

SELECT Phone,FirstName,LastName,EmployeeID FROM [employees]

如果这样可行,则表示Employees表中的某种字段是无法处理的...由于上述触发了错误,因此意味着代码无法处理Autonum字段。 请尝试以下操作:

SELECT Phone,FirstName,LastName,CAST(EmployeeID as INT) as EmployeeID 
       FROM [employees]

尝试完全删除INSERT SQL的where子句

  InsertCommand="INSERT INTO [database] (Phone,FirstName,LastName) VALUES (@Phone,@FirstName,@LastName) "

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM