将查询结果保存为csv文件,保存到服务器的指定文件夹下

本文关键字:保存 服务器 文件夹 结果 查询 csv 文件 | 更新日期: 2023-09-27 18:06:54

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

我使用asp.net和c#作为前端。

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

我正在使用下面的代码。

select * from mytablename where area_code=21

将查询结果保存为csv文件,保存到服务器的指定文件夹下

            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());

保存路径名为table

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

执行此查询时,必须设置写入文件的路径。当前在此查询中,您必须在"C:'"驱动器中创建一个"bcp"文件夹。

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