3
我嘗試使用下面的代碼從數據庫中下載文件,下載從大型數據庫文件:錯誤而嘗試使用實體框架
using(SFTDBEntities db = new SFTDBEntities()) {
Guid Id_LogServerLogFile = Guid.Parse(lblId.Text.Trim());
LogServerLogFile logServerLogFile = new LogServerLogFile();
logServerLogFile = db.LogServerLogFiles.FirstOrDefault(x = > x.Id == Id_LogServerLogFile);
byte[] data = logServerLogFile.LogServerLogFilesData.TFFileData;
long sz = logServerLogFile.TFFileSize;
Response.ClearContent();
Response.ContentType = logServerLogFile.TFFileMimeType;
Response.AddHeader("Content-Disposition", string.Format("attachment; filename = " + logServerLogFile.TFFileName));
Response.AddHeader("Content-Length", sz.ToString("F0"));
Response.Expires = 30;
Response.Buffer = true;
Response.BinaryWrite(data);
Response.Flush();
Response.End();
}
用於小尺寸它工作正常的文件,但是當我嘗試下載大文件(例如:27 MB) 在下面一行:
byte[] data = logServerLogFile.LogServerLogFilesData.TFFileData;
我得到以下錯誤:
Invalid attempt to call IsDBNull when reader is closed.
任何幫助將不勝感激。
我使用EF5,當我嘗試你的代碼'CommandTimeout'屬性不存在! – Karamafrooz
請參閱我的編輯。 – afzalulh
thx很多,它的工作。順便說一句,我用文件下載的好方法? – Karamafrooz