私のアプリケーションには、DataSet を満たす SqlDataAdapter があります。DataSet は 1 つのテーブルのみを取得し、このテーブルはさらに 1 つの DataRow のみを取得します。このDataRowには、データベースから画像データを取得する列があるため、データベースから非常に大きな画像データになる可能性があります。
SqlCommand cmd = DBHandler.CreateSPCmd("AttachmentSelectbyID");
DBHandler.AddParam(cmd, "@AttachmentID", SqlDbType.Int, attachmentID);
var da = new SqlDataAdapter(cmd);
var ds = new DataSet();
da.Fill(ds, "Attachment");
それぞれのイメージ データが非常に大きい場合、このコマンドはメモリ不足の例外をスローします。SqlDataReader を使用しようとしましたが、同じ例外が引き続き発生します。
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
object ob = reader["AttachmentImage"];
}
問題はデータ レコードの数が多いことではありませんが、データベースからの非常に大きな画像データに基づいていると思います。解決策はありますか?