Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.NET GridView更新赢得';t向SQL查询发送用户ID_.net_Sql_Gridview_Sqldatasource - Fatal编程技术网

.NET GridView更新赢得';t向SQL查询发送用户ID

.NET GridView更新赢得';t向SQL查询发送用户ID,.net,sql,gridview,sqldatasource,.net,Sql,Gridview,Sqldatasource,我目前正在尝试学习如何使用基本的网格视图控件来显示我的数据 首先,我试着通过aspx页面做每件事,让自己的事情更简单 到目前为止,一切都很好,但我在使用更新查询时遇到了问题 我想要的结果只是一个简单的2列表,它将显示一个用户名,然后是一个编辑按钮 问题是,如果我在列中不包含用户ID,查询不会更新任何内容 这是我的SqlDataSource代码: 这是我的GridView: 当我转到页面并单击编辑时,名称字段将更改为文本框,我可以按预期选择更新或取消 但是对于上面的代码,当我单击updat

我目前正在尝试学习如何使用基本的网格视图控件来显示我的数据

首先,我试着通过aspx页面做每件事,让自己的事情更简单

到目前为止,一切都很好,但我在使用更新查询时遇到了问题

我想要的结果只是一个简单的2列表,它将显示一个用户名,然后是一个编辑按钮

问题是,如果我在列中不包含用户ID,查询不会更新任何内容

这是我的SqlDataSource代码:


这是我的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>

我刚试过,但不幸的是它不起作用。谢谢你抽出时间!