问题:
如何从我的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>
解答:
要调用带参数的存储过程,您可以按照以下步骤操作:
以下更新后的代码演示了如何使用两个参数调用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中文网其他相关文章!