问题可能出在每次从数据库中检索数据时,都需要打开和关闭数据库连接。这会导致大量的性能开销。通过以下方法,可以在读取数据时仅打开一次数据库并将结果存储在内存中:
下面是完整的代码示例:
using System.Data.SqlClient; using System.IO; using System.Text;
protected void Button1_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection("connectionString"); conn.Open(); SqlCommand cmd = new SqlCommand("SELECT * FROM Table", conn); SqlDataReader reader = cmd.ExecuteReader();
StringBuilder csv = new StringBuilder();
while (reader.Read())
{
csv.AppendLine(reader["column_name"].ToString());
}
reader.Close();
conn.Close();
Response.Clear();
Response.ContentType = "text/csv";
Response.AddHeader("Content-Disposition", "attachment; filename=export.csv");
Response.Write(csv.ToString());
Response.End();
}