c# - 如何在 C# 中向 SQLDataSource 添加更新参数

标签 c# gridview webforms sqldataadapter

关于我的问题,

How to get boundfield value, or am I totally wrong?

我正在尝试使用 c# 而不是 ASP.NET 将更新参数添加到 SQLDataSource,但出现错误,

protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
{
    int userID = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Values["userID"].ToString());
    string userName = "";
    string city = "";
    string updateStatement = "Update myTable set userName=@userName, city=@city where userID=@userID";

    foreach (DictionaryEntry entry in e.NewValues)
    {
        if (entry.Key == "userName")
            userName = entry.Value.ToString();
        if (entry.Key == "city")
            city = entry.Value.ToString();
    }

    using (SqlDataSource ds = new SqlDataSource(ConnectionString(), updateStatement))
    {
       ds.UpdateParameters.Add("@userName");  
        ds.UpdateParameters.Add("@city");
       ds.UpdateParameters.Add("@UserId");
    }

    gvDetails.EditIndex = -1;
    BindData();
}

如何传递参数值:S

ds.UpdateParameters.Add("@userName");  
        ds.UpdateParameters.Add("@city");
       ds.UpdateParameters.Add("@UserId");

但是我不知道正确的语法,请有人指导我正确的方向

最佳答案

我认为您应该使用 SqlCommand 而不是 SqlDataSource:

  using (SqlConnection connection = new SqlConnection(ConnectionString())
  using (SqlCommand cmd = new SqlCommand(updateStatement, connection)) {
    connection.Open();
    cmd.Parameters.Add(new SqlParameter("@Name", userName));
    cmd.Parameters.Add(new SqlParameter("@city", city));
    cmd.Parameters.Add(new SqlParameter("@UserId", userID));
    cmd.ExecuteNonQuery();
  }

关于c# - 如何在 C# 中向 SQLDataSource 添加更新参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16302494/

相关文章:

asp.net - 如何在 GridView 中隐藏 TemplateField 列

asp.net - 可编辑 GridView 不起作用

jquery - 如何使用 jQuery 将选项添加到下拉列表?

c# - C#中Raspberry Pi的CPU温度

c# - 是否会按照严格的时间顺序调用 GTK+ 超时回调?

java - GridView OnItemClickListener 没有调用 onItemClick

asp.net - 如何在 Visual Studio 2015 中隐藏设计/拆分/源代码栏?

c# - 记住单个页面上的状态时,使用隐藏字段总是比 session 更好吗?

java - 将双列表转换为分组字符串

c# - SynchronizationContext.Post 到 UI 方法