Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/23.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# 如果筛选条件从10天扩展到整月,则数据集填充为null。OutOfMemory异常_C#_Sql Server 2012_Dataset - Fatal编程技术网

C# 如果筛选条件从10天扩展到整月,则数据集填充为null。OutOfMemory异常

C# 如果筛选条件从10天扩展到整月,则数据集填充为null。OutOfMemory异常,c#,sql-server-2012,dataset,C#,Sql Server 2012,Dataset,当我从SQLServer2012为多达100万行填充数据集时,一切正常。但当我减少筛选条件并从SQLServer中选择大约300万行到数据集中时,我得到的数据集对象为null public DataSet ExecDataSet(string sql) { try { using (SqlCommand cmd = new SqlCommand()) {

当我从SQLServer2012为多达100万行填充数据集时,一切正常。但当我减少筛选条件并从SQLServer中选择大约300万行到数据集中时,我得到的数据集对象为null

public DataSet ExecDataSet(string sql)
        {
            try
            {
                using (SqlCommand cmd = new SqlCommand())
                {
                    cmd.Connection = connection;
                    cmd.CommandTimeout = commandTimeout;
                    cmd.CommandText = sql;
                    cmd.CommandType = CommandType.Text;
                    return ExecDataSet(cmd);
                }
            }
            catch (Exception ex)
            {
                lastErrorMsg = ex.Message;
                return null;
            }
        }

从您的帖子描述来看,由于代码语句
cmd.CommandTimeout=CommandTimeout,用于获取3M行的查询似乎正在超时并因此引发
超时
异常,并到达
Catch()
块,在该块中返回
null
,如下所示

       catch (Exception ex)
        {
            lastErrorMsg = ex.Message;
            return null;
        }

尝试增加超时值,看看是否成功。

debug,在
catch
设置断点,并发布异常消息
ExecDataSet(cmd)
???是接受命令参数的重载吗?我想我应该通过扩展Commandtimeout来尝试。抱歉,伙计,这实际上是一个outofmemory例外。在Dataadapter.Fill(数据集)处。