2012-05-20 66 views
1

但是,我正在尝试完成基于Web的应用程序的事务处理;过程或函数期望未提供的参数#2

Procedure or function 'completeTransaction' expects parameter '@dateTime', which was not supplied. 

这里是功能的副本。

public static void completeTransaction(string storeCode, string employeeId, DateTime Date, string itemListNoId) 
{ 
    using (SqlConnection conn = new SqlConnection("Data Source = ; Initial Catalog =Business ; Integrated Security = true;")) 
    { 
     using (SqlCommand command = new SqlCommand("dbo.completeTransaction", conn)) 
     { 
      command.CommandType = CommandType.StoredProcedure; 
      command.Parameters.Add("@storeCode", SqlDbType.Int).Value = storeCode; 
      command.Parameters.Add("@employeeId", SqlDbType.Int).Value = employeeId; 
      **command.Parameters.Add("@Date", SqlDbType.DateTime).Value = Date;** 
      command.Parameters.Add("@itemListNoId", SqlDbType.Int).Value = itemListNoId; 
      conn.Open(); 

      command.ExecuteNonQuery(); 
      conn.Close(); 
     } 
    } 
} 

我的SQL表包含以下表和类型(商店代码,INT,员工,INT,日期,DATETIME,itemListNoId,INT)

+1

前缀,请不要。 –

+1

请阅读错误消息,请_do_。 –

+0

哈哈。谢谢您的帮助。 – MasterP

回答

3

您不传递一个名为@dateTime的参数。看起来这行

command.Parameters.Add("@Date", SqlDbType.DateTime).Value = Date; 

应该

command.Parameters.Add("@dateTime", SqlDbType.DateTime).Value = Date; 

但是,如果没有SP源代码,这是很难确定。请记住,SQL Server抱怨参数的名称与其类型无关。

3

预计参数'@datetime'

您传递了一个名为@Date的参数。

2

参数的名称是错误的:

command.Parameters.Add("@dateTime", SqlDbType.DateTime).Value = Date; 
2

如果您收到这一点,你已经在正确命名的参数传递,请检查CommandType设置为存储过程

cmd.CommandType = CommandType.StoredProcedure; 

我看到这些相同的症状花费了很长的时间来追踪每个参数到达存储过程的方式。

相关问题