GridView RowUpdating来自CodeBehind的SqlDataSource.Update
所以我在OnRowUpdating事件期间在Gridview中进行更新时遇到问题。
我想要做的是在SqlDataSource中设置UpdateCommand,然后使用该命令进行更新。 事件发生正常,但是当事件完成时,行似乎永远不会更新。
C#:
protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e) { SqlDataSource1.UpdateCommand = "UPDATE A_Table SET Something = @AValue WHERE ID = " + e.RowIndex; SqlDataSource1.Update(); }
编辑:重新编写我的示例更新命令…它实际上是一个更新命令,而不是一个选择命令哈哈。
这里的其他答案在指出UpdateCommand
的问题时非常正确。
正如我在前面的评论中提到的,我只是指出这比你在那里更容易。 将GridView
与SQLDataSource
一起使用时,只要设置正确,就可以完成很多工作。
首先,在UpdateCommand
的标记中定义UpdateCommand
,如下所示:
( ColPK
将是您正在更新的表的主键)
然后,您可以在GridView标记中将“AutoGenerateEditButton”设置为true,噗! 您可以更新GridView
(无需在后面的代码中执行任何操作)。
现在,如果您需要进行额外处理,或者根据某些逻辑取消Update
等,您仍然可以在代码中处理OnRowUpdating
事件。但基本的Updatefunction几乎是免费的!
您的UpdateCommand应该是UPDATE
命令,而不是SELECT
命令。
SqlDataSource1.UpdateCommand = "SELECT Something FROM A_Table WHERE ID = " + e.RowIndex;
将该行更改为更接近此的行:
SqlDataSource1.UpdateCommand = "UPDATE A_Table SET Something = @Something WHERE ID = " + e.RowIndex;
有关如何使用UpdateCommand的更多信息,请参阅此msdn链接:
http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.sqldatasource.updatecommand.aspx
首先, UpdateCommand
不应该像UPDATE A_Table SET ID = .. WHERE ...
?
我想你错过了什么。 读取插入更新编辑删除GridView中的记录 。 这篇文章对你来说很棒。
编辑:像Kiley说:尝试SqlDataSource1.UpdateCommand = "UPDATE A_Table SET Something = @Something WHERE ID = " + e.RowIndex;