我正在尝试为特定名称更新sql数据库,但以下代码无法正常工作。有什么想法吗?
这是我在单击按钮时所做的事情:
string person = listBox2.SelectedItem.ToString();
string memberStatus = "platinum";
string conn = "Data Source=.;Initial Catalog=myDB;Integrated Security=True";
using (SqlConnection connection = new SqlConnection(conn))
{
SqlCommand cmd = new SqlCommand("UPDATE Client Set Role = @Status WHERE Name = @name");
cmd.CommandType = CommandType.Text;
cmd.Connection = connection;
cmd.Parameters.AddWithValue("@Status", memberStatus);
cmd.Parameters.AddWithValue("@name", person);
connection.Open();
cmd.ExecuteNonQuery();
}
当我检查数据库时,客户端角色尚未更新。当我调试时,person的值为“ System.Data.DataRowView”为什么?我该如何解决?
最佳答案
好的,该值为System.Data.DataRowView
的原因是因为您将列表绑定到DataView
。那很酷。但是我们需要考虑到这一点:
string person = ((DataRowView)listBox2.SelectedItem)["Name"] as string;
其中
Name
是包含人员姓名的字段的名称。我假设该字段被命名为Name
。这将解决您的查询。关于c# - 为特定用户更新数据库,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17066124/