将参数传递到存储的过程

时间:2018-07-17 10:58:35

标签: c# sql

我有一个正在存储的过程,该过程具有三个参数,但是对于我来说,我看不出c#语法有什么问题

var _accountREFCurrrent = new SqlParameter("@AccountRef", SqlDbType.NVarChar);
    _accountREFCurrrent.Value = account.ACCOUNT_REF;

var _SortOrder = new SqlParameter("@SortOrder", SqlDbType.Int);
     _SortOrder.Value = first.SORT_ORDER;

var _CATEGORY = new SqlParameter("@CATEGORY", SqlDbType.Int);
     _CATEGORY.Value = first.CATEGORY;

var result = db.Database.SqlQuery<sp_sumbalances_Result>("sp_sumbalances_Result
@AccountRef @SortOrder @CATEGORY", new object[] { _accountREFCurrrent, 
_CATEGORY  ,_SortOrder }).ToList();

它可能有些愚蠢,我不正确,因为它在Management Studio中返回了数据

enter image description here

正在从管理工作室的上方返回数据。

enter image description here

您将看到我在.net中遇到的错误

enter image description here

1 个答案:

答案 0 :(得分:3)

参数和变量顺序之间缺少逗号:

var result = db.Database.SqlQuery<sp_sumbalances_Result>("sp_sumbalances_Result
@AccountRef @SortOrder @CATEGORY", new object[] { _accountREFCurrrent, 
_CATEGORY  ,_SortOrder }).ToList();

应该是:

var result = db.Database.SqlQuery<sp_sumbalances_Result>("sp_sumbalances_Result
@AccountRef, @SortOrder, @CATEGORY", new object[] { _accountREFCurrrent, _SortOrder, 
_CATEGORY}).ToList();