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的问题时非常正确。

正如我在前面的评论中提到的,我只是指出这比你在那里更容易。 将GridViewSQLDataSource一起使用时,只要设置正确,就可以完成很多工作。

首先,在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;