-2

在将数据填充到数据集中时出现此错误

try
{

    cnn.Open();

    SqlCommand cmd = new SqlCommand(temp, cnn);

    cmd.CommandTimeout = 999600000;
    cmd.CommandType = CommandType.Text;
    cmd.ExecuteNonQuery();


    DataSet ds = new DataSet();
    SqlDataAdapter dscmd = new SqlDataAdapter(cmd);

    dscmd.Fill(ds);
    dt = ds.Tables[0];

}

SQL 查询包含 80000 条记录。

由于内存使用过多,会话已终止。尝试修改您的查询以处理更少的行。当前命令发生严重错误。结果,如果有的话,应该丢弃。

4

1 回答 1

1

这是一种 SQL azure 保护机制(具体为错误 40553),与调用 C#/.NET/ADO.NET 无关。解决此问题的唯一方法是通过处理更少的数据或至少以让 SQL azure 满意的方式来使 SQL azure 快乐。没有您的 sql 命令 ( temp) 的可见性,我们无法提供任何内容。

另请参阅深入了解SQL Azure – 第 2 部分 – 保护机制

MSDN 上有关于此错误的相关说明:

减少 Transact-SQL 代码中 ORDER BY 和 GROUP BY 操作的数量有助于减少查询的内存需求。

于 2013-03-28T13:07:14.783 回答