为了账号安全,请及时绑定邮箱和手机立即绑定

使用c#中的参数调用存储过程

使用c#中的参数调用存储过程

互换的青春 2019-07-22 20:05:03
使用c#中的参数调用存储过程我可以在我的程序中进行删除、插入和更新,我试图通过调用我的数据库中创建的存储过程来进行插入。这是一个按钮插入我使工作良好。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);     }这是调用名为sp_Add_contact添加联系人。两个参数sp_Add_contact(@FirstName,@LastName)..我在谷歌上搜索了一些很好的例子,但没有发现什么有趣的地方。private void button1_Click(object sender, EventArgs e){         SqlConnection con = new SqlConnection(dc.Con);         SqlCommand cmd = new SqlCommand("Command String", con);         cmd.CommandType = CommandType.StoredProcedure;         ???         con.Open();         da. ???.ExecuteNonQuery();         con.Close();         dt.Clear();         da.Fill(dt);     }
查看完整描述

3 回答

?
有只小跳蛙

TA贡献1824条经验 获得超8个赞

这与运行查询几乎是一样的。在原始代码中,您将创建一个命令对象,并将其放入cmd变量,永远不要使用它。然而,在这里,您将使用它而不是da.InsertCommand.

此外,请使用using对于所有一次性对象,以确保它们被正确地处理:

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.Add("@FirstName", SqlDbType.VarChar).Value = txtFirstName.Text;
      cmd.Parameters.Add("@LastName", SqlDbType.VarChar).Value = txtLastName.Text;

      con.Open();
      cmd.ExecuteNonQuery();
    }
  }}


查看完整回答
反对 回复 2019-07-22
?
料青山看我应如是

TA贡献1772条经验 获得超8个赞

您必须添加参数,因为SP需要它来执行

using (SqlConnection con = new SqlConnection(dc.Con)){
    using (SqlCommand cmd = new SqlCommand("SP_ADD", con))
    {
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@FirstName", txtfirstname);
        cmd.Parameters.AddWithValue("@LastName", txtlastname);
        con.Open();
        cmd.ExecuteNonQuery();
    }            }


查看完整回答
反对 回复 2019-07-22
  • 3 回答
  • 0 关注
  • 348 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信