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

Posted

技术标签:

【中文标题】收到错误“查询输入必须包含至少一个表或查询”。【英文标题】:Getting the error "Query input must contain at least one table or query." 【发布时间】:2011-08-28 22:36:12 【问题描述】:

我正在使用 Visual Studio 2010 创建一个表单,您可以在其中编辑、删除或插入来自 accessdatabase 的数据。当我尝试在 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>

【问题讨论】:

【参考方案1】:

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

SELECT * FROM [database]

试试类似的东西

SELECT * FROM Employee

现在试试这个

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

如果可行,则意味着员工表中的某些字段无法处理...由于上述触发错误,这意味着代码无法处理 Autonum 字段。请尝试以下操作:

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

尝试将 where 子句完全从 INSERT SQL 中移除

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

【讨论】:

是的,数据库是我的表名。 我怀疑这可能会导致问题,数据库通常是保留字。您可以将该表中的记录复制到另一个表中并更改代码以引用新表名吗?如果这样可行,那么驱动程序可能会被保留字绊倒...... 我有一个像你建议的那样名为员工的新表,但我仍然收到错误。 您的代码看起来不错,此消息通常表示查询存在语法错误。尝试将 * 替换为您需要的 3 个字段名称,它可能是 ACCESS 无法处理的表中的数据类型... 三个可见字段的数据类型为“TEXT”,EmployeeID为主键,在表中不可见,其数据类型为“AutoNumber”。所以我应该只输入“SELECT Phone,FirstName,LastName FROM [employees]”?如果最后一句的语法正确,我会收到错误消息“DataBinding:'System.Data.DataRowView' 不包含名为 'EmployeeID' 的属性。”另外,感谢所有的帮助。 :)

以上是关于收到错误“查询输入必须包含至少一个表或查询”。的主要内容,如果未能解决你的问题,请参考以下文章

在 VBA 中不存在的地方使用插入

每当我使用“require”这个词时,我都会收到一个错误,如果我尝试使用 relative_require,我也会收到一个错误

我收到“错误:React.Children.only 预计会收到一个 React 元素子项。”带有 TouchableWithoutFeedback

Webpack 5 收到 Polyfill 错误?!?!我的 JavaScript React 项目在尝试编译我的 webpack.config.js 文件时收到一个 polyfill 错误

为啥我会收到这些错误,java truetype 错误?

为啥我收到的 jwt 格式错误?