无法将参数值从SqlParameter转换为String

时间:2014-02-19 05:47:44

标签: c# stored-procedures

嗨我已阅读过所有以前类似的问题,但无法使其正常工作

SqlParameter[] param = new SqlParameter[1];
param[0] = new SqlParameter("@Lot", SqlDbType.NChar, 112);
param[0].Value = "Bob123457";
DataSet ds1 = db.ExecuteDataSet("Getmagesbylot2", param );

我的存储过程正在寻找nchar(112)作为参数 我尝试过使用和不使用引号和单引号

2 个答案:

答案 0 :(得分:2)

ExecuteDataSet调用采用实际参数值,而不是SqlParameter个对象。将其更改为:

var ds1 = db.ExecuteDataSet("Getmagesbylot2", "Bob123457");

您可能还想检查您是否正确拼写了SP,也许它应该是GetImagesByLot2

答案 1 :(得分:-1)

使用此

    SqlParameter[] param = new SqlParameter[1];
    param[0] = new SqlParameter("@Lot", SqlDbType.VarChar, 112);
    param[0].Value = "Bob123457";

    DataSet ds1 = db.ExecuteDataSet("Getmagesbylot2", param );

OR

    SqlParameter[] param = new SqlParameter[1];
    param[0] = new SqlParameter("@Lot", SqlDbType.NVarChar, 112);
    param[0].Value = "Bob123457";

    DataSet ds1 = db.ExecuteDataSet("Getmagesbylot2", param );