gpt4 book ai didi

c# - 将datakeyname添加到sql参数

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

在我的 gridview 上,我想激活删除按钮。我已将删除按钮添加到 grideview 并将 DeleteCommand 添加到 SqlDataSource

    <asp:SqlDataSource ID="SqlDataSource1" runat="server" SelectCommand="SELECT rowNumber,  firstName as 'Fornavn' where shopID=@pageid order by firstName asc" DeleteCommand="DELETE FROM [sydShopOrder] WHERE rowNumber=@rowNumber">
<SelectParameters><asp:QueryStringParameter Name="pageid" QueryStringField="id"/> </SelectParameters>

</asp:SqlDataSource>

如您所见,我可以从 QueryStringField 添加 SelectParameters pageid。现在我想再添加一个 DeleteParameters 到此 asp:SqlDataSource 这是 @rowNumber,这是我的 gridview 的 datakeyname。我如何将这个 datakeyname 添加到 sql DeleteParameters

或者有更好的方法吗?我缺少的东西

最佳答案

在删除(以及更新)操作期间,数据绑定(bind)控件将当前和原始记录值传递给 SqlDataSource 控件。当前值在 Values 字典中传递。原始值在 Keys 或 OldValues 字典中传递。

这意味着如果 rowNumber 实际上是一个 Column 并且应该在 delete 命令中用作参数,只需将 delete 命令设置为:

"DELETE FROM [sydShopOrder] WHERE rowNumber=@rowNumber"

只要您为每个参数指定与其影响的字段相同的名称,并在其前面加上 @ 符号(这样 FirstName 就变成了 @FirstName), 你不需要定义参数。这是因为 ASP.NET 数据控件会在触发更新之前自动提交具有新值的参数集合。集合中的每个参数都使用此命名约定。

一种特殊情况,当你要删除一个数据时,其他用户可能会更改相同的数据,所以在这种情况下,你可能不想删除它。

在这种情况下,使用属性:SqlDataSource 的 OldValuesParameterFormatString 作为:

<asp:SqlDataSource ID="SqlDataSource1" runat="server" 
SelectCommand="SELECT rowNumber, firstName as 'Fornavn'
where shopID=@pageid order by firstName asc"
DeleteCommand="DELETE FROM [sydShopOrder] WHERE rowNumber=@original_rowNumber">
OldValuesParameterFormatString="original_{0}"
>
</asp:SqlDataSource>

只需确保将 GridView 的 DataKeyNames 属性设置为包括您的 PrimaryKeys,因为它用于匹配记录值。检查 this link .

关于c# - 将datakeyname添加到sql参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18979181/

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