現在、データを表示するために基本的なグリッドビューコントロールを使用する方法を学習しようとしています。.NET GridViewのアップデートでSQLクエリにユーザーIDが送信されない
まず、私はaspxページを通してすべてをやろうとしました。
これまでのところすべてがうまくいっていますが、更新クエリの使用に問題があります。
希望の結果は、ユーザー名と編集ボタンを表示する単純な2列テーブルです。
問題は、ユーザーIDを列に含めないと、クエリは何も更新しないということです。
これは私のSqlDataSourceコードです:
<asp:SqlDataSource
ID="sqlDataSource"
runat="server"
ConnectionString="<%$ ConnectionStrings:conn %>"
SelectCommand="SELECT UserID, Name FROM tblUsers;"
UpdateCommand="UPDATE tblUsers SET Name = @Name WHERE UserID = @UserID">
<UpdateParameters>
<asp:Parameter Name="Name" />
<asp:Parameter Name="UserID" />
</UpdateParameters>
</asp:SqlDataSource>
そして、これが私のGridViewである:
<asp:GridView
ID="Clients"
DataSourceID="sqlDataSource"
runat="server"
AllowPaging="true"
AllowSorting="true"
PageSize="25"
AutoGenerateColumns="False"
DataKeyNames="UserID">
<Columns>
<asp:BoundField DataField="Name" HeaderText="Users Name" SortExpression="Name" />
<asp:CommandField EditText="Edit" ShowEditButton="true" />
</Columns>
</asp:GridView>
私はページに移動し、[編集]をクリックすると、テキストボックスに名前フィールドの変更、および私は期待どおりに更新かキャンセルを選択できます。
上記のコードでは、[更新]をクリックすると、SQLにUserIDが表示されないため、データを変更せずに通常の表が表示されます。
<asp:BoundField DataField="UserID" HeaderText="Users ID" SortExpression="UserID" />
を<Columns>
に追加すると動作します。
UserID列をテーブルに追加することなくこの作業を行う方法はありますか?
私はちょうどそれを試みたが、残念ながらそれは動作しません。あなたの時間をありがとう! –