2015-10-26 60 views
1

我有一个简单的形式与2个文本框和一个组合框和两个单选按钮。这些所有项目的值都保存到SQL Server 2008的数据库中,并显示在gridview中,并放置在同一个表单中。如果点击gridview中的任何行,它将所有的值返回到表单域(上面提到的数据域)。现在我的问题来了。我想更改任何字段的值,并通过单击UPDATE按钮进行更新。如何做到这一点,请帮助我。我更新按钮后面的代码在这里,但它不起作用。C#查询更新从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(); 
    } 
+0

这非常不安全的代码SQL注入是可能的我会推荐使用参数 –

+0

你需要使用'参数化查询初学者'也查找如何使用'DataBinding'在你的代码中你绑定数据到Gridview时请张贴代码在'SO'上,显示所有相关的代码,这行代码的目的是什么DataSet DS = new DataSet();'你声明了一些东西,但从来没有填充它,也没有使用它。 – MethodMan

回答

0

它不更新,因为您正在更新语句中使用更新的字段,它不会返回任何结果。所以尽量让旧值和某些变量保留它,并使用update语句的where子句中

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

另一个大问题是这段代码没有加密,可以用来这里是LINK