これが私のストアドプロシージャです:
[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に変更してもうまくいかなかったため、質問にはまだ回答されていません。何かアイデアはありますか?