将查询结果保存为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
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的内置方法编写应该是直接的。然后将文件名存储在表中。