如果过滤条件从10天扩展到整个月,则数据集填充为空.OutOfMemory异常

本文关键字:填充 数据集 异常 OutOfMemory 条件 过滤 10天 扩展到 如果 | 更新日期: 2023-09-27 17:51:06

当我从SQL Server 2012填充数据集多达100万行时,一切都很好。但是当我减少过滤条件并选择大约300万行数据集从sql server我得到数据集对象为空

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;
            }
        }

如果过滤条件从10天扩展到整个月,则数据集填充为空.OutOfMemory异常

从你的帖子描述来看,由于代码语句cmd.CommandTimeout = commandTimeout;,获取3M行的查询超时,并且由于它抛出Timeout异常,并且它正在到达Catch()块,您将返回null,如下所示

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

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