0

我正在将表的内容读入我的 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# 表中的值分配给变量?

非常感谢。

4

1 回答 1

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();

这将为查询提供所有命名参数以及新值。

于 2013-03-26T11:12:26.797 回答