C#查询从gridview双击事件更新文本框值

C#查询从gridview双击事件更新文本框值,c#,sql,gridview,C#,Sql,Gridview,我有一个简单的表单,有两个文本框、一个组合框和两个单选按钮。所有这些项的值都保存到SQLServer2008的数据库中,并以相同的形式显示在gridview中。如果单击gridview中的任何行,它会将所有值返回表单字段(上述数据字段)。现在我的问题来了。我想更改任何字段的值,并通过单击“更新”按钮进行更新。如何做到这一点,请帮助我。我的代码隐藏更新按钮在这里,但它不起作用 private void btn_Update_Click(object sender, EventArgs e)

我有一个简单的表单,有两个文本框、一个组合框和两个单选按钮。所有这些项的值都保存到SQLServer2008的数据库中,并以相同的形式显示在gridview中。如果单击gridview中的任何行,它会将所有值返回表单字段(上述数据字段)。现在我的问题来了。我想更改任何字段的值,并通过单击“更新”按钮进行更新。如何做到这一点,请帮助我。我的代码隐藏更新按钮在这里,但它不起作用

private void btn_Update_Click(object sender, EventArgs e)
    {
        SqlConnection str_Conn = new SqlConnection("server=HOME; Database=TestProject; Integrated Security=sspi");
        str_Conn.Open();
        DataSet DS = new DataSet();
        SqlCommand str_Cmd = new SqlCommand("UPDATE Personal_Info SET Name = '"+ txtBx_Name.Text +"' WHERE Name = '"+ txtBx_Name.Text.ToString() +"'", str_Conn);
        str_Cmd.ExecuteNonQuery();
        str_Conn.Close();
    }

它不会更新,因为您正在使用update语句中的updated字段,该字段不会返回任何结果。所以,尝试获取旧值并将其保留在某个变量中,然后在update语句的where子句中使用它

 SqlCommand str_Cmd = new SqlCommand("UPDATE Personal_Info SET Name = '"+ txtBx_Name.Text +"' WHERE Name = '"+ txtBx_Name.Text.ToString() +"'", str_Conn);

另一个大问题是这段代码不安全,可以用来解决这一问题,因为在update语句中使用的updated字段不会返回任何结果,所以它不会更新。所以,尝试获取旧值并将其保留在某个变量中,然后在update语句的where子句中使用它

 SqlCommand str_Cmd = new SqlCommand("UPDATE Personal_Info SET Name = '"+ txtBx_Name.Text +"' WHERE Name = '"+ txtBx_Name.Text.ToString() +"'", str_Conn);

另一个大问题是此代码不安全,可用于此问题是

此非常不安全的代码SQL注入是可能的我建议使用参数您需要为初学者使用
参数化查询
还可以查看如何使用
数据绑定
请在代码中的何处将数据绑定到Gridview在
SO
上发布代码时,显示所有相关代码以及此行的用途
DataSet DS=new DataSet()您正在声明某些内容,但从未填充或使用它..这种非常不安全的代码SQL注入是可能的我建议使用参数您需要为初学者使用
参数化查询
还可以查看如何使用
数据绑定
在您的代码中,您在哪里将数据绑定到Gridview发布代码时请在
SO
上,显示所有相关代码以及此行的用途
DataSet DS=new DataSet()您正在声明某些内容,但从未填充或使用它。。