这是我的存储过程:
[dbo].[DFW_Completed_Safety] (
@StartDate VARCHAR(10),
@Station VARCHAR(50),
@EmployeeID INT)
当我编写以下代码时:
SqlDataAdapter daAC_CSM = new SqlDataAdapter();
DataSet dsAC_CSM = new DataSet();
try
{
using (SqlConnection sqlConnection = new SqlConnection(connectionString))
{
sqlCmd = new SqlCommand();
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlCmd.Connection = sqlConnection;
sqlCmd.CommandTimeout = 0;
sqlCmd.CommandText = "DFW_Completed_Safety";
sqlCmd.Parameters.AddWithValue("@StartDate", startdate);
sqlCmd.Parameters.AddWithValue("@Station", station);
sqlCmd.Parameters.AddWithValue("@EmployeeID", "0");
daAC_CSM.SelectCommand = sqlCmd;
daAC_CSM.Fill(dsAC_CSM);
}
return dsAC_CSM;
}
catch (Exception)
{
throw;
}
它抛出异常:EmployeeID作为 varchar 接收。
Conversion failed when converting the varchar value 'd ' to data type int.
我尝试过的事情:
1- 许多其他人在 StackOverflow 上发帖建议这样Convert.ToInt32(0);
做。由于默认情况下 0 是 Int32,因此这不是解决方案。
2-更改接收varchar的方法(发送“0”),它也不起作用。
感谢您的任何想法!(将方法签名保持为 Int 会更好)。
更新:这个问题还没有回答,因为将我的存储过程更改为 varchar 并没有成功。有什么想法吗?