我正在将表的内容读入我的C#应用程序,最终用户可以在其中编辑数据。然后我希望将这些新信息发回数据库。
DataTable Table = new DataTable("TestTable");
using (SqlConnection _con = new SqlConnection(connectionString))
{
string queryStatement = "SELECT * FROM dbo.usr_Table ORDER BY code ASC";
using (SqlCommand _cmd = new SqlCommand(queryStatement, _con))
{
SqlDataAdapter _dap = new SqlDataAdapter(_cmd);
_con.Open();
_dap.Fill(Table);
_con.Close();
}
}
dataGridView1.DataSource = Table;
我对SQL有足够的信心来编写一个UPDATE语句,内联我的C#代码,但这是最好/最有效的方法吗?
我必须根据新应用程序方面的每一行进行更新,我可以这样做吗?
SqlCommand sqlCmd = new SqlCommand("UPDATE usr_Table SET description= @description, subject = @subject, text = @text, status = @status WHERE code = @code", connectionString);
如果是这样,我如何将C#表中的值分配给变量?
非常感谢。
答案 0 :(得分:1)
我个人使用LINQ来执行此类过程,但如果您想要或需要滚动自己的SQL查询,那么:
SqlCommand sqlCmd = new SqlCommand("UPDATE usr_Table SET description= @description, subject = @subject, text = @text, status = @status WHERE code = @code", connectionString);
sqlCmd.Parameters.Add(new SqlParameter("description", newDescription));
sqlCmd.Parameters.Add(new SqlParameter("subject", newSubject));
sqlCmd.Parameters.Add(new SqlParameter("text", newText));
sqlCmd.Parameters.Add(new SqlParameter("status", newStatus));
sqlCmd.Parameters.Add(new SqlParameter("subject", newSubject));
sqlCmd.Parameters.Add(new SqlParameter("code", code));
sqlCmd.ExecuteNonQuery();
这将使用新值为查询提供所有命名参数。