将查询结果保存为特定文件夹下服务器上的csv文件

时间:2014-06-06 04:54:04

标签: c# asp.net sql-server

我想将sql server 2008查询结果保存到服务器本身并将文件链接存储在另一个表中,这样每当我想要我可以下载文件时,无需重新执行查询。

我使用带有C#的asp.net作为前端。

在前端它就像。 Enter Area Code
用户输入区号并点击提交,它将搜索数据库中相同区号的所有记录,并将其保存在服务器上的csv文件中。

我正在使用以下代码。

select * from mytablename where area_code=21

将此结果保存在我的服务器上。

3 个答案:

答案 0 :(得分:1)

            FileStream fs = new FileStream(path, FileMode.CreateNew);
            StreamWriter CsvfileWriter = new StreamWriter(fs);
            //This Block of code for getting the Table Headers

            for (int i = 0; i < dr.FieldCount; i++)
            {
                tableColumns.Columns.Add(dr.GetName(i));
            }
            CsvfileWriter.WriteLine(tableColumns.Columns.ConcatUsing(","));

            StringBuilder sb = new StringBuilder();
            while (dr.Read())
            {
                for (int i = 0; i < dr.FieldCount; i++)
                {
                    sb.AppendFormat("{0},", dr[i]);
                }
                sb.AppendLine();
            }
            CsvfileWriter.WriteLine(sb.ToString());

保存路径名称为表。

答案 1 :(得分:0)

使用LinqToCSV并将文件写入服务器。 使用LinqToCSV的内置方法编写应该是直截了当的。 然后将文件名存储在表中。

答案 2 :(得分:0)

declare @sql varchar(8000)
select @sql = 'bcp "select * from mytablename where area_code=21" queryout c:\bcp\[filename] -c -t, -T -S' + @@servername
exec master..xp_cmdshell @sql

执行此查询您必须设置写入文件的路径。 目前在此查询中,您必须创建一个&#34; bcp&#34;文件夹在&#34; C:\&#34;驱动器。