簡體   English   中英

將查詢結果另存為csv文件在特定文件夾下的服務器上

[英]Save Query Result as csv file on server under specific folder

我想將sql server 2008的查詢結果保存到服務器本身,並將文件鏈接存儲在另一個表中,以便每當我希望可以下載文件時,而無需重新執行查詢。

我使用C#作為前端的asp.net。

在前端就像。 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。

使用LinqToCSV並將文件寫入服務器。 使用LinqToCSV的內置方法可以直接進行編寫。 然后將文件名存儲在表中。

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:\\” Drive中創建一個“ bcp”文件夾。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM