繁体   English   中英

下载SQL Server表的内容,并将其放入CSV文件中?

[英]Download contents of SQL Server table, and put the contents in to a CSV file?

我有一个项目,该项目应包含下载功能,当用户按下下载按钮时,SQL Server表的内容将作为csv文件下载。

有什么办法可以做到吗?

名为Characters的表的内容将作为csv文件下载。 我所知道的是,我已经使用了Select* from Characters的查询Select* from Characters ,但是我不知道如何实现它。

        protected void btnDownload_Click(object sender, EventArgs e)
    {

        string fileName = string.Empty;
        string filepath = Request.MapPath("~/Uploads");// this needs to be changed with the SQL query, but I do not know how to implement it
        string downloadFileName = "Attendance.zip";
        Response.ContentType = "application/zip";
        Response.AddHeader("content-disposition", "filename=" + downloadFileName);

        using (ZipFile zip = new ZipFile())
        {
            foreach (GridView row in gvFiles.Rows)
            {
                CheckBox cb = (CheckBox)row.FindControl("chkSelect");
                if (cb != null && cb.Checked)
                {
                    fileName = (row.FindControl("lblFileName") as Label).Text;
                    zip.AddFile(Server.MapPath(Path.Combine(filepath, fileName)), "");
                }
            }
            zip.Save(Response.OutputStream);
        }

我不确定您发布的代码与该问题的关系如何,但是这里是您如何获取表内容并将其转换为CSV文件的方法。 该示例假定您已经填充了DataTable(dtTable):

StringBuilder sb = new StringBuilder();

for (int i = 0; i < dtTable.Columns.Count; i++)
{
    sb.Append(dtTable.Columns[i].ColumnName);
    sb.Append(",");
}

// Remove the trailing ,
sb.Remove(sb.Length - 1, 1);
sb.Append(Environment.NewLine);

for (int i = 0; i < dtTable.Rows.Count; i++)
{
    for (int j = 0; i < dtTable.Columns.Count; j++)
    {
        sb.Append(dtTable.Rows[i][j].ToString());
        sb.Append(",");
    }

    sb.Remove(sb.Length - 1, 1);
    sb.Append(Environment.NewLine);
}

string csvFileString = sb.ToString();

为了提高性能并节省资源,我将使用SQL命令和仅向前的SqlDataReader来获取数据。

这些文章可以帮助您了解所需内容。:

http://www.developerfusion.com/article/4278/using-adonet-with-sql-server/2/

http://wiki.asp.net/page.aspx/401/export-to-csv-file/

您对您的环境没有太多了解。 例如:

  • 您使用哪种数据访问技术?
  • 您是否必须转义csv文件中的字段?

对于处理csv文件,我建议使用filehelpers库

如果您有选择数据访问的自由,也许您应该看一下LINQ2SQLADO EF,或者只使用普通的SqlCommand / SqlDataReader。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM