我正在尝试为特定名称更新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/

10-14 16:35
查看更多