当前位置:编程学习 > C#/ASP.NET >>

datagrid导入Excel数据大了就出错呢?

在网上找的datagrid导出Excel的代码,为什么数据少的时候没问题,数据大了就出错呢?请高手指点?
private   void   Export(System.Web.UI.WebControls.DataGrid   dg,string   fileName)   
{   
        System.Web.HttpResponse   httpResponse   =   Page.Response;   
httpResponse.AppendHeader("Content-Disposition","attachment;filename="+HttpUtility.UrlEncode(fileName,System.Text.Encoding.UTF8));     
httpResponse.ContentEncoding=System.Text.Encoding.GetEncoding("BIG5");   
httpResponse.ContentType   ="application/ms-excel";   
System.IO.StringWriter     tw   =   new   System.IO.StringWriter()   ;   
System.Web.UI.HtmlTextWriter   hw   =   new   System.Web.UI.HtmlTextWriter   (tw);   
dg.RenderControl(hw);   
string   filePath   =   Server.MapPath("..")+fileName;   
System.IO.StreamWriter   sw   =   System.IO.File.CreateText(filePath);   
sw.Write(tw.ToString());   
sw.Close();   
    
DownFile(httpResponse,fileName,filePath);   
httpResponse.End();   
}   
    
private     bool   DownFile(System.Web.HttpResponse   Response,string   fileName,string   fullPath)   
{   
try   
{   
Response.ContentType   =   "application/octet-stream";   
    
Response.AppendHeader("Content-Disposition","attachment;filename="   +     
HttpUtility.UrlEncode(fileName,System.Text.Encoding.UTF8)   +   ";charset=BIG5");   
System.IO.FileStream   fs=   System.IO.File.OpenRead(fullPath);   
long   fLen=fs.Length;   
int   size=102400;//每100K同时下载数据     
byte[]   readData   =   new   byte[size];//指定缓冲区的大小     
if(size>fLen)size=Convert.ToInt32(fLen);   
long   fPos=0;   
bool   isEnd=false;   
while   (!isEnd)     
{     
if((fPos+size)>fLen)   
{   
size=Convert.ToInt32(fLen-fPos);   
readData   =   new   byte[size];   
isEnd=true;   
}   
fs.Read(readData,   0,   size);//读入一个压缩块     
Response.BinaryWrite(readData);   
fPos+=size;   
}     
fs.Close();     
System.IO.File.Delete(fullPath);   
return   true;   
}   
catch   
{   
return   false;   
}   
}    --------------------编程问答-------------------- 什么错? --------------------编程问答-------------------- internet explorer无法打开站点,与服务器的链接被重置?? --------------------编程问答-------------------- 你有多少数据啊 --------------------编程问答-------------------- 大概5000条以上就出错 --------------------编程问答-------------------- 是不是数据多了,导致超时 --------------------编程问答-------------------- 把整个错误贴出来,大家研究一下 --------------------编程问答-------------------- 碰过类似的情况,关注ING
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,