2016-09-17 95 views
-1

我想在我的Linq代码中调用存储过程。当我只使用一个参数时,它工作正常,但是当我想使用多个参数时,它显示一个错误。传递多个参数以调用存储过程与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(); 

它返回一个错误的第二个参数:

An error occurred while reading from the store provider's data reader. See the inner exception for details.

+0

分享错误吗? – Chandru

+0

“从商店提供商的数据阅读器读取时发生错误,请参阅内部例外以了解详细信息。” ...很好 - 向我们展示你的内部例外细节... – W92

+0

检查了这一点http://stackoverflow.com/questions/23976618/how-to-pass-two-parameters-to-call-a-stored-procedure- through-c-sharp-mvc-functi – Chandru

回答

2

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

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(); 
相关问题