Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 索引超出了数组的界限(System.Byte到tinyint)_C#_Asp.net_Linq To Sql - Fatal编程技术网

C# 索引超出了数组的界限(System.Byte到tinyint)

C# 索引超出了数组的界限(System.Byte到tinyint),c#,asp.net,linq-to-sql,C#,Asp.net,Linq To Sql,我卡住了 我有SP dbo.getbalance,它返回多个记录集。实际上是2个重编码集 SP的一个参数是TINYINT lang_type,我在c中知道它是System.Byte,但是当我试图传递这个参数时,我得到了一个错误:索引超出了数组的边界 这是我的密码 public class Balance : DataClasses1DataContext { [Function(Name = "dbo.getbalance")] [ResultType(t

我卡住了 我有SP dbo.getbalance,它返回多个记录集。实际上是2个重编码集

SP的一个参数是TINYINT lang_type,我在c中知道它是System.Byte,但是当我试图传递这个参数时,我得到了一个错误:索引超出了数组的边界

这是我的密码

public class Balance : DataClasses1DataContext
    {
        [Function(Name = "dbo.getbalance")]
        [ResultType(typeof(BalanceUserList))]
        [ResultType(typeof(UserBalanceAccount))]
        public IMultipleResults GetUserBalance(int iclient_no, int session_id, DateTime? bal_date)
        {
            System.Byte lang_type = 0;// Helper.GetLanguage();
            IExecuteResult result = this.ExecuteMethodCall(this,
                ((MethodInfo)(MethodInfo.GetCurrentMethod())),
                iclient_no, session_id, bal_date, lang_type );
            return (IMultipleResults)(result.ReturnValue);
        }

    }
和SP的参数

@iclient_no         INT,
@session_id         INT,
@bal_date           SMALLDATETIME ,
@lang_type          TINYINT = NULL

我做错了什么?

tinyint相当于一个无符号字节:0到255在这几行中发生了很多事情。当您得到该异常时,调用堆栈是什么样子的?如果我理解正确的话,下面是错误的图片:GetUserBalance方法只接受3个参数,而您在ExecuteMethodCall中提供了4个参数。我假设这就是它停止的原因。rene GetUserBalance只是一个调用SP的方法,SP接受4个参数,我无法传递nullable参数: