首页 >后端开发 >C++ >如何在C#中调用带参数的存储过程?

如何在C#中调用带参数的存储过程?

Linda Hamilton
Linda Hamilton原创
2025-01-23 12:52:10245浏览

How to Call a Stored Procedure with Parameters in C#?

在C#中调用带参数的存储过程

问题:

如何从我的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>

解答:

要调用带参数的存储过程,您可以按照以下步骤操作:

  1. 创建一个SqlCommand对象,并将其CommandType属性设置为CommandType.StoredProcedure。
  2. 使用Parameters集合向SqlCommand对象添加参数。每个参数都应指定其名称、数据类型和值。
  3. 打开数据库连接并执行SqlCommand。

以下更新后的代码演示了如何使用两个参数调用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中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn