質問:
C# コードからパラメーターを使用してストアド プロシージャを呼び出すにはどうすればよいですか? コマンド文字列を使用して挿入、更新、削除の操作を実行できますが、ストアド プロシージャの処理方法がわかりません。
これは、コマンド文字列を使用してデータを正常に挿入する現在のコードです:
<code class="language-csharp">private void btnAdd_Click(object sender, EventArgs e) { SqlConnection con = new SqlConnection(dc.Con); SqlCommand cmd = new SqlCommand("Command String", con); da.InsertCommand = new SqlCommand("INSERT INTO tblContacts VALUES (@FirstName, @LastName)", con); da.InsertCommand.Parameters.Add("@FirstName", SqlDbType.VarChar).Value = txtFirstName.Text; da.InsertCommand.Parameters.Add("@LastName", SqlDbType.VarChar).Value = txtLastName.Text; con.Open(); da.InsertCommand.ExecuteNonQuery(); con.Close(); dt.Clear(); da.Fill(dt); }</code>
答え:
パラメーターを使用してストアド プロシージャを呼び出すには、次の手順に従います。
次の更新されたコードは、2 つのパラメーターを使用して sp_Add_contact ストアド プロシージャを呼び出す方法を示しています。
<code class="language-csharp">private void button1_Click(object sender, EventArgs e) { using (SqlConnection con = new SqlConnection(dc.Con)) { using (SqlCommand cmd = new SqlCommand("sp_Add_contact", con)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@FirstName", txtFirstName.Text); cmd.Parameters.AddWithValue("@LastName", txtLastName.Text); con.Open(); cmd.ExecuteNonQuery(); } } dt.Clear(); da.Fill(dt); }</code>コードの可読性と保守性を向上させるために、
メソッドを使用してパラメーターを追加することをお勧めします。これにより、パラメーターのデータ型が自動的に推測されます。 ストアド プロシージャ AddWithValue
が実際に存在し、パラメータ名がコード内のパラメータ名と一致していることを確認してください。 sp_Add_contact
以上がC# でパラメーターを使用してストアド プロシージャを呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。