datagrid update命令不起作用?我错过了什么吗?

时间:2011-06-28 20:12:57

标签: asp.net datagrid sqldatasource

我正在使用 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>

1 个答案:

答案 0 :(得分:0)

回答自己:我发现为了使其正常工作,ID列必须是主键(或者可能是唯一列),否则它将无效并且不会给您任何错误,这有点奇怪。