-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、ここで提供できるものは何もありません。

Dipping My Toes Into SQL Azure – Part 2 – Protection Mechanismsも参照してください。

このエラーについて、MSDN に関連するメモがあります。

Transact-SQL コード内の ORDER BY 操作と GROUP BY 操作の数を減らすと、クエリのメモリ要件を減らすのに役立ちます。

于 2013-03-28T13:07:14.783 に答える