代码之家  ›  专栏  ›  技术社区  ›  David B

向存储过程[closed]传递参数时出错

  •  -5
  • David B  · 技术社区  · 6 年前

    我有一个调用的存储过程,它有三个参数,但在我的生命中,我看不到我在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();
    

    它探测到一些愚蠢的东西,我不知道它是否正确,因为它在ManagementStudio中返回数据。

    enter image description here

    在管理工作室中从上面返回的数据。

    enter image description here

    你会看到我进入.NET的错误

    enter image description here

    1 回复  |  直到 6 年前
        1
  •  3
  •   Ricardo Pontual    6 年前

    参数之间缺少逗号,变量顺序错误:

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