2017-06-15 28 views
0

是否有SQL查詢通過我可以直接轉儲表中的數據到C#文本或csv文件?有沒有SQL查詢通過我可以直接轉儲表中的數據到C#文本或csv文件?

+0

你想發出一個查詢到SQL,並有查詢本身創建一個文本/ CSV文件,而無需任何額外的親在C#中ce?? – mrogers

+2

這是一個問題太廣泛 –

+0

有很多關於你可以谷歌關於將DataTable轉換爲CSV的例子,你也可以使用SSIS ..你也可以編寫你自己的方法來處理這個問題 – MethodMan

回答

0

您需要使用ADO.Net或Entity Framework來查詢該表,然後打開FileStream將數據輸出到文本/ csv文件中。沒有比這更直接簡單的事了。

+0

有許多其他方式連接到數據庫,而不僅僅是ADO或EF;) – oerkelens

+0

大聲笑真正的,但....哦,你知道我的意思大聲笑 – TheGeekYouNeed

+0

是的,我喜歡。我只是非常沮喪,我不得不使用存儲過程與Oracle數據庫交談,DBA和開發人員都害怕使用EF或甚至NHibernate :) – oerkelens

1

否C#不是SQL,反之亦然。如果您的意思是「如何根據查詢結果編寫文本文件?」,這很容易。

如果您使用谷歌尋找C#SQL到文本文件,第一次打擊是,你不會猜測,stackoverflow

主要想法是創建連接,根據查詢定義讀取器,並使用Streamwriter創建文件。

如果你想其他的方法來MSSQL數據導出到文件,你可以看看SQLServerCentral

0
 try 
     { 
      using (System.IO.StreamWriter ff = new System.IO.StreamWriter(fileName)) 
      using (SqlConnection connection = new SqlConnection(connectionString)) 
      { 
       SqlCommand command = new SqlCommand(
        @"SELECT 
         firstName, 
         lastName, 
         salary 
         FROM persons", 
        connection); 
       connection.Open(); 

       ff.WriteLine("firstName,lastName,salary"); // header 
       SqlDataReader reader = command.ExecuteReader(); 
       while (reader.Read()) 
       { 
        var rr = (IDataRecord)reader; 
        ff.WriteLine(string.Format("{0},{1},{2:C2}", 
               rr.GetValue(0), 
               rr.GetValue(1), 
               rr.GetValue(2)              
               ) 
           ); 
       }      
       reader.Close(); 
      } 
     } 
     catch (Exception ex) 
     { 
      MessageBox.Show(ex.Message, "Error"); 
     } 
0

...另一邊,你可以在數據庫端建立CSV並返回單值( VARCHAR(MAX))

下面的例子是sqlsqrver

select cast((
    select 
     cc.clientId, 
     ',', -- this is separator 
     cc.clientName, 
     ',', 
     cc.birthdate, 
     ',', 
     cc.status, 
     ' 
' -- this new line 
    from Clients cc 
    for xml path('') 

) as XML).value('.','varchar(max)') 
相關問題