传递多个参数以使用LINQ调用存储过程

时间:2016-09-17 13:44:03

标签: c# linq stored-procedures

我想在Linq代码中调用存储过程。当我只使用一个参数时,它工作正常,但是当我想使用多个参数时,它会显示错误。

这就是我所做的 - 这项工作很好:

 SqlParameter param1 = new SqlParameter("@Value1", val);
 var abc = db.tablename.SqlQuery("SP_Name @Value1", param1).ToList();

现在我要添加第二个参数

SqlParameter param2 = new SqlParameter("@Value2", val2);
var abc = db.tablename.SqlQuery("SP_Name @Value1,@Value2", param1, param2 ).ToList();

它会返回错误:

  

从商店提供商的数据阅读器读取时发生错误。有关详细信息,请参阅内部异常。

1 个答案:

答案 0 :(得分:3)

希望这个示例代码可以帮助您!!

var param1 = new SqlParameter(); 
param1.ParameterName = "@Value1"; 
param1.SqlDbType = SqlDbType.Int; 
param1.SqlValue = val1;

var param2 = new SqlParameter(); 
param2.ParameterName = "@Value2"; 
param2.SqlDbType = SqlDbType.NVarChar; 
param2.SqlValue = val2;

var result = db.tablename.SqlQuery("SP_Name @Value1,@Value2", param1, param2 ).ToList();