Asp.net datagrid更新命令不起作用?我错过什么了吗?
我正在使用Datagrid和SQLDataSource绑定一个表中的数据。为了启用更新,我编写了更新查询,我的错误如下Asp.net datagrid更新命令不起作用?我错过什么了吗?,asp.net,datagrid,sqldatasource,Asp.net,Datagrid,Sqldatasource,我正在使用Datagrid和SQLDataSource绑定一个表中的数据。为了启用更新,我编写了更新查询,我的错误如下 update mytable field1=@field1, field2=@field2 where ID=@ID 单击“编辑”时,我进入编辑模式。当我提交更改时,该更改不会提交,并且不会出现错误。我需要在别的地方换东西吗?在本例中,我没有修改任何C#代码 编辑: 如果我省略了where ID=@ID,那么整个列都被成功地更改了,但是ID=@ID不起作用。这里有什么问题 编
update mytable field1=@field1, field2=@field2 where ID=@ID
单击“编辑”时,我进入编辑模式。当我提交更改时,该更改不会提交,并且不会出现错误。我需要在别的地方换东西吗?在本例中,我没有修改任何C#代码
编辑:
如果我省略了where 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>
回答我自己:我发现为了让它工作,ID列必须是主键(或者可能是唯一的列),否则它不会工作,也不会给你任何错误,这有点奇怪。@Bala,我实际上为这篇文章重命名了一些字段。问题在于ID=@ID,我不知道什么是正确的sytanx;不知道为什么它不起作用。您是否尝试为所有参数包含类型?这段代码是由SQLDataSource自动生成的,所以我觉得没有必要更改它。当我删除where ID=@ID时,它确实起作用,但随后它会更新所有行。