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;

私は自分のC#コードに沿ってUPDATEステートメントを書くのに十分な自信を持っていますが、これはそれを実行するための最良/最も効率的な方法ですか?

新しいアプリケーション側の各行に基づいて更新する必要がありますが、このようなものがありますか?;

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 に答える