admin

asp.net网格视图批量更新所有单元格

sql

我正在使用asp.net网格视图从sql数据表中加载数据。我能够成功加载数据。

SQL表设计: 3个cloumns:Location,Firstname,LastName

位置是主键。

设计 :

Aspxpage有一个gridview,其底部有两个按钮:

  1. 编辑

当用户单击“编辑”按钮时,gridview中的所有单元格都变为可编辑状态,以便用户可以编辑和保存值。

我的问题出在保存按钮上,我无法将编辑后的数据保存回SQL。

这是保存按钮单击的代码:

protected void btnSave_Click(object sender, EventArgs e)
{
    int RowIndex=0;

    GridViewRow row = (GridViewRow)gvres.Rows[RowIndex];

    TextBox txtLanguage1 = row.FindControl("txtFName") as TextBox;
    TextBox txtLanguage2 = row.FindControl("txtLName") as TextBox;

    SqlConnection myConnection = new SqlConnection(connectionString);
    SqlCommand cmd = new SqlCommand("UPDATE UsersTable SET FirstName = @FirstName, LastName = @LastName WHERE Location = @Location", myConnection);


    cmd.Parameters.AddWithValue("@FirstName", txtFirstName.Text.Trim());
    cmd.Parameters.AddWithValue("@LastName", txtLastName.Text.Trim());

    myConnection.Open();
    cmd.ExecuteNonQuery();
    gvusers.EditIndex = -1;
    DataBind();
}

例外: “必须声明标量变量“ @Location”。”


阅读 199

收藏
2021-07-01

共1个答案

admin

您需要向SqlCommand对象添加一个名为“ @Location”的参数。您提到位置是网格中的列之一-
您可以从列中读取值(类似于获取名字和姓氏值的方式),也可以将“ Location”指定为数据键,然后从网格的DataKeys属性获取它。

我将看一下Codeplex上的ASP.NET Real World
Controls
项目。它允许批量编辑,并且它足够聪明以仅更新已更改的行。

2021-07-01