在我的应用程序中,有一个填充DataSet的SqlDataAdapter。 DataSet只获取一个表,此表进一步只获得一个DataRow。这个DataRow有一个colum,它从datebase获取图像数据,因此它可能是来自数据库的非常大的图像数据。
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");
当相应的图像数据非常大时,该命令会抛出一个outofmemoryexception。我尝试使用SqlDataReader,但仍然会发生同样的异常:
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
object ob = reader["AttachmentImage"];
}
问题不在于大量的数据记录,但我认为问题是基于来自数据库的非常大的图像数据。有没有解决方案?