2011-08-28 6 views
0

私は、Visual Studio 2010を使用して、アクセス・データベースからデータを編集、削除、または挿入できるフォームを作成しています。 Webブラウザでフォームを実行しようとすると、「クエリ入力に少なくとも1つのテーブルまたはクエリが含まれている必要があります」というエラーが表示されます。私は問題が私のコード/構文にあると信じていますが、私は問題の原因を特定することができません。私は以下に私のコードのいくつかを追加し、どんな助けやヒントも大歓迎です。ありがとうございました。エラーの取得「クエリ入力には少なくとも1つのテーブルまたはクエリが含まれている必要があります。

<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][email protected],[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 Phone,FirstName,LastName,EmployeeID FROM [employees] 

これを試してみてください

SELECT * FROM Employee 

ような何かをしようとすると、それは、Employeesテーブル内のフィールドのいくつかの並べ替えを扱うことができないものであることを意味します。 ..上記はエラーを引き起こすので、コードがAutonumフィールドを処理できないことを意味します。以下試してください:

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

はええ、データベースが私のテーブルの名前です完全にINSERT SQL

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

オフwhere句を取ってみてください。 – chan

+1

問題が発生している可能性があります。データベースは通常予約語です。そのテーブルのレコードを別のテーブルにコピーし、新しいテーブル名を参照するようにコードを変更できますか?それがうまくいくと、ドライバーはおそらく予約語の上でトリップしているでしょう。 – Sparky

+0

私はあなたの提案したEmployeesという名前の新しいテーブルを持っていますが、私はまだエラーを受け取ります。 – chan

関連する問題