【发布时间】:2016-08-05 13:26:48
【问题描述】:
知道如何更快地从数据库中下载 excel 文件吗?
它应该在按钮点击上。我尝试使用以下代码:
SqlConnection connSql = new SqlConnection(Generic);
DataSet ds = new DataSet();
SqlCommand cmdSql = new SqlCommand();
cmdSql.Connection = connSql;
cmdSql.CommandType = System.Data.CommandType.StoredProcedure;
cmdSql.CommandText = "sp_GetDetails";
cmdSql.Parameters.Add(new SqlParameter("@pageIndex", 0));
cmdSql.Parameters.Add(new SqlParameter("@pageSize",rowcount));
cmdSql.Parameters.Add(new SqlParameter("@administratordid", adminid));
connSql.Open();
SqlDataAdapter da = new SqlDataAdapter(cmdSql);
da.Fill(ds);
gvDetails.AllowCustomPaging = false;
gvDetails.AllowPaging = false;
gvDetails.DataSource = ds;
gvDetails.DataBind();
connSql.Close();
Response.ClearContent();
Response.Buffer = true;
Response.ContentEncoding = System.Text.Encoding.Default;
Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", fileName));
Response.ContentType = contentType;
HtmlTextWriter objTW = new HtmlTextWriter(objSW);
gvDetails.RenderControl(objTW);
Response.Write(style);
Response.Write(objSW);
Response.End();
下载整个文件大约需要 10 分钟。我的数据库中的行数是 25,000。
请为此建议一种更快的方法。我一直在尝试不同的代码,但还没有工作。
【问题讨论】:
-
在不进行导出的情况下运行查询是否也需要 10 分钟?如果是这样,问题出在存储过程中。其次,看起来您正在尝试同时做两件事(导出和数据绑定到网格视图?)