- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
所以我在 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
一起使用时,只要您设置正确,就会为您完成很多工作。
首先,在 SQLDataSource
的标记中定义您的 UpdateCommand
,如下所示:
<asp:SqlDataSource ID="SqlDataSource1" runat="server"
ConnectionString="Your Connection String Here"
ProviderName="System.Data.SqlClient"
SelectCommand="SELECT ColPK, ColA, ColB, ColC FROM Table_Name"
UpdateCommand="UPDATE Table_Name
SET ColA=@ColA, ColB=@ColB, ColC=@ColC,
WHERE ColPK=@ColPK">
</asp:SqlDataSource>
(ColPK
将是您要更新的表的主键)
然后,您可以在 GridView 标记中将“AutoGenerateEditButton”设置为 true,噗!您可以更新 GridView
(无需在代码后面执行任何操作)。
<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False"
AutoGenerateEditButton="True" DataKeyNames="ColPK"
DataSourceID="SqlDataSource1">
<Columns>
<asp:BoundField DataField="ColPK" HeaderText="Column PK"
SortExpression="ColA" ReadOnly="True" />
<asp:BoundField DataField="ColA" HeaderText="Column A"
SortExpression="ColA" />
<asp:BoundField DataField="ColB" HeaderText="Column B"
SortExpression="ColB" />
<asp:BoundField DataField="ColC" HeaderText="Column C"
SortExpression="ColC" />
</Columns>
</asp:GridView>
现在,如果你需要做额外的处理,你仍然可以在你的代码中处理 OnRowUpdating
事件,或者根据一些逻辑取消 Update
等。但是基本的更新功能几乎是免费的!
关于c# - 代码隐藏中的 GridView RowUpdating SqlDataSource.Update,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7680153/
我有以下 GridView: 我想更新通过编辑按钮选择的行。问题是,如果我尝试在 gridCar_RowUpdating 中执行此操作,e.NewValues 不包含编辑后的值,而是包含旧值。 我四
我有以下 GridView: 我想更新通过编辑按钮选择的行。问题是,如果我尝试在 gridCar_RowUpdating 中执行此操作,e.NewValues 不包含编辑后的值,而是包含旧值。 我四
我使用以下代码在 OnUpdating 命令期间更新 gridview 中的值, protected void grid_view_RowUpdating(object sender, GridVie
protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e) { GridView1.EditInde
当尝试更新 GridView 数据时,它成功运行,但它获取的是旧数据而不是您在文本框中键入的数据。 这是我的: protected void GridView1_RowUpdating(object
我有一个 tableadapter,我想在触发 RowUpdated 事件时做一些事情。我不知道将代码放在哪里以将处理程序添加到事件。 public partial class MyTableAdap
我只是在测试我是否会在没有运气的情况下从文本框中获取更改的值。我只是无法获得新的值(value)。我究竟做错了什么?我已经尝试了很多东西。这是最新的。如何将更新后的新值添加到我的标签中?当我单击网格上
我有一个带有 AutoGenerateColumns="False" 的 Gridview。 我使用 TemplateField 在 GridView 的第一列中相应的 ItemTemplate 和
我正在尝试更新数据库中的一行。其他一切都工作正常,删除、创建、列出,但编辑一行给了我一个 createSQLFeatureNotSupportedException @Override pub
我正在使用 GridView 。当我单击编辑按钮时,会出现更新和取消按钮。 在修改来自 EditItemTemplate 的文本框中的值后,新值不会显示在事件处理程序 rowupdating() 中,
HTML 页面:
我在使用 RowUpdating 方法时遇到问题。我的 GridView 已连接到我们的本地 SQL Server,我正在尝试更新数据。以下是来自 MSDN 的 RowUpdating 方法的代码。
所以我在 OnRowUpdating 事件期间在 Gridview 中进行更新时遇到问题。 我想做的是在 SqlDataSource 中设置 UpdateCommand,然后使用该命令进行更新。事件正
我的 GridView 有问题。当我尝试编辑我的 GridView 时,我只得到旧值作为返回。 这是 RowUpdating 事件: protected void grid_RowUpdating(o
我遇到的问题是当我运行代码时遇到这个错误: "Cannot insert the value NULL into column 'OnHand', table 'C:\USERS\UNKNOWN\DE
I use TemplateField to create dropdownlist in 2nd column when in edit mode. but it cannot be find
我有一个 gridView,它有一个编辑、删除、更新和取消链接按钮来执行受尊重的功能。 编辑、删除和取消命令工作正常。 但问题是RowUpdating当我单击 gridView 上的更新链接按钮时,不
我一直在努力寻找一种方法来在我的 GridView 中获取标签的“旧”值。我试过使用 hiddenFields 来保存它们(这会给我这个错误) Error when using hiddenField
我已经能够解决最初无法一致插入记录的问题,但出现了新的错误消息。 现在,我收到GridView“GridView1”触发了未处理的事件RowUpdating。 当我单击“更新”按钮更新一行记录时,会发
我是一名优秀的程序员,十分优秀!