【问题标题】:Error While creating Store Procedures in Sql Server in C#在 C# 中的 Sql Server 中创建存储过程时出错
【发布时间】:2015-09-14 19:45:06
【问题描述】:

我正在使用 C# 在 SQL Server 中创建存储过程,但出现错误 即“执行批处理时发生错误”。 这是我的查询

    CREATE Procedure [dbo].[SP_empInsert]

    @empCode VARCHAR(50),
    @empName VARCHAR(50),
    @empCellNum VARCHAR(50),
    @empAddress VARCHAR(50),
    @empdate VARCHAR(50)
AS
   INSERT INTO Employee values                  
      (@empCode,@empName,@empCellNum,@empAddress,@empdate)
return 0

C#

conn.Open(); 
SqlCommand cmd = new SqlCommand("dbo.SP_empInsert", conn); 

cmd.Parameters.Add(new SqlParameter("@empCode",txtid )) //Convert.ToInt32(txtid.Text) 

cmd.Parameters.Add(new SqlParameter("@empName", txtname.Text)); 
cmd.Parameters.Add(new SqlParameter("@empCellNum", txtquantity.Text)); 
cmd.Parameters.Add(new SqlParameter("@empAddress", txtprice.Text)); 
cmd.Parameters.Add(new SqlParameter("@empdate", dateTimePicker1.Text)); 

cmd.ExecuteNonQuery();

我们将不胜感激。

【问题讨论】:

  • 你能展示一下C#代码吗?
  • 错误与您粘贴的内容无关,您需要添加更多详细信息,包括调用 SP 的代码
  • cmd.Parameters.Add(new SqlParameter("@empCode",txtid ));//Convert.ToInt32(txtid.Text) cmd.Parameters.Add(new SqlParameter("@empName", txtname.Text));
  • 在创建 SP 或将其调用到 C# 代码时是否出错?
  • 创建时出错

标签: c# sql-server


【解决方案1】:

你不见了:

cmd.CommandType = CommandType.StoredProcedure;

创建并运行您的存储过程,包括针对您的数据库的字段名称,例如:

   USE Sample
       CREATE Procedure [dbo].[SP_empInsert]
  (@empCode VARCHAR(50),
    @empName VARCHAR(50),
    @empCellNum VARCHAR(50),
    @empAddress VARCHAR(50),
    @empdate VARCHAR(50))
    AS
       INSERT INTO Employee (EmpCode, EmpName, EmpCellNum, EmpAddress, EmpDate) 
           VALUES (@empCode,@empName,@empCellNum,@empAddress,@empdate)    

确保在 SQLServer 的数据库中创建了存储过程:

【讨论】:

  • 这是我的实际错误创建 [dbo].[SP_empInsert]... (67,1): SQL72014: .Net SqlClient Data Provider: Msg 213, Level 16, State 1, Procedure SP_empInsert,第 10 行的列名或提供的值的数量与表定义不匹配。
  • 确保列与 ​​SQL 脚本中的内容匹配。
  • 我的存储过程是不久前创建的并显示在目录中,但是当我运行程序时出现新的异常
  • System.Argument 异常:对象类型不存在映射
  • 您可以通过显示表定义来更新您的问题吗?
【解决方案2】:

错误不在 SP 语法中。最后可能有一些资源问题。更多详情请参考此链接:SQL Server - An error occurred while executing batch. Error message is: The directory name is invalid

【讨论】:

  • 答案如何?
猜你喜欢
  • 2016-07-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-25
  • 1970-01-01
  • 1970-01-01
  • 2020-07-06
  • 1970-01-01
相关资源
最近更新 更多