在我的应用程序中有一个填充数据集的 SqlDataAdapter。DataSet 只得到一个表,而该表进一步只得到一个 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"];
}
问题不在于大量的数据记录,但我认为问题是基于来自数据库的非常大的图像数据。有什么解决办法吗?