我正在使用 Datagrid 和SQLDataSource来绑定来自一个表的数据。为了启用更新,我写了更新查询,我错了。
update mytable field1=@field1, field2=@field2 where ID=@ID
当我点击编辑时,我进入编辑模式。当我提交更改时,更改未提交,我没有收到任何错误。我是否需要在其他地方更改某些内容?在这个例子中,我没有修改任何C#代码。
修改 如果省略ID = @ID的位置,则整列成功更改,但不能使用ID = @ID。这有什么不对?
修改:代码
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="<%$ ConnectionStrings:MyConnectionString %>"
SelectCommand="SELECT [my_id], [ID], [FirstName], [LastName], [ApplicationUserName] FROM [member_tbl]"
UpdateCommand="UPDATE [member_tbl] SET [my_id] = @my_id, [FirstName] = @FirstName, [LastName] = @LastName, [ApplicationUserName] = @ApplicationUserName where ID = @ID">
<UpdateParameters>
<asp:Parameter Name="my_id" Type="Int32"/>
<asp:Parameter Name="FirstName" />
<asp:Parameter Name="LastName" />
<asp:Parameter Name="ApplicationUserName" />
<asp:Parameter Name="id" />
</UpdateParameters>
</asp:SqlDataSource>
答案 0 :(得分:0)
回答自己:我发现为了使其正常工作,ID列必须是主键(或者可能是唯一列),否则它将无效并且不会给您任何错误,这有点奇怪。