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

本文关键字:LINQ 调用 存储过程 参数 | 更新日期: 2023-09-27 18:07:25

我想在我的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();

返回错误:

从存储提供程序的数据读取器读取时发生错误。详情请参阅内部异常。

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

希望这个示例代码对您有所帮助!

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();

这就是我如何使用带有2个参数的Store过程,您可以根据需要使用。

adxGYMDataContext db = new adxGYMDataContext();
var mysp = db.sp_memb_info_get_del(int.Parse(txt_id_memb.Text), true).Select(x=>x).ToList();
foreach (var item in mysp)
{
cmb_duration_memb.Text = item.memb_dur.ToString();
txt_tel_memb.Text = item.memb_tel.ToString();
}