.NET GridView更新赢得';t向SQL查询发送用户ID
我目前正在尝试学习如何使用基本的网格视图控件来显示我的数据 首先,我试着通过aspx页面做每件事,让自己的事情更简单 到目前为止,一切都很好,但我在使用更新查询时遇到了问题 我想要的结果只是一个简单的2列表,它将显示一个用户名,然后是一个编辑按钮 问题是,如果我在列中不包含用户ID,查询不会更新任何内容 这是我的SqlDataSource代码:.NET GridView更新赢得';t向SQL查询发送用户ID,.net,sql,gridview,sqldatasource,.net,Sql,Gridview,Sqldatasource,我目前正在尝试学习如何使用基本的网格视图控件来显示我的数据 首先,我试着通过aspx页面做每件事,让自己的事情更简单 到目前为止,一切都很好,但我在使用更新查询时遇到了问题 我想要的结果只是一个简单的2列表,它将显示一个用户名,然后是一个编辑按钮 问题是,如果我在列中不包含用户ID,查询不会更新任何内容 这是我的SqlDataSource代码: 这是我的GridView: 当我转到页面并单击编辑时,名称字段将更改为文本框,我可以按预期选择更新或取消 但是对于上面的代码,当我单击updat
这是我的GridView:
当我转到页面并单击编辑时,名称字段将更改为文本框,我可以按预期选择更新或取消
但是对于上面的代码,当我单击update时,它只会再次显示普通表,数据没有任何更改,因为SQL没有获取任何用户标识
但是,如果我将
添加到
中,它会工作
我有没有办法在不将UserID列添加到表中的情况下完成这项工作?添加列并将
设置为Visible
为False
<asp:BoundField DataField="UserID" Visible="False" />
您可以使用OldValuesParameterFormatString:
<asp:SqlDataSource
ID="sqlDataSource"
runat="server"
ConnectionString="<%$ ConnectionStrings:conn %>"
OldValuesParameterFormatString="original_{0}"
SelectCommand="SELECT UserID, Name FROM tblUsers;"
UpdateCommand="UPDATE tblUsers SET Name = @Name WHERE UserID = @original_UserID">
<UpdateParameters>
<asp:Parameter Name="Name" />
<asp:Parameter Name="original_UserID" />
</UpdateParameters>
</asp:SqlDataSource>
我刚试过,但不幸的是它不起作用。谢谢你抽出时间!