gpt4 book ai didi

c# - 代码隐藏中的 GridView RowUpdating SqlDataSource.Update

转载 作者:太空宇宙 更新时间:2023-11-03 19:27:16 24 4
gpt4 key购买 nike

所以我在 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 一起使用时,只要您设置正确,就会为您完成很多工作。

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

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com