关于我的问题,
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/