2017-02-19 67 views
0

那麼我的問題與Windows窗體,SQL Server和Excel有關。如何將兩個SQL Server表的比較保存到Excel文件中?

我開發一個應用程序在SQL Server的兩個表的數據進行比較,並獲得滿意的結果。直到將數據插入到SQL Server表和比較表的部分工作正常,現在我想將比較結果保存到Excel文件中。

我試過很多方法,但到目前爲止都失敗了:)我給我的函數來執行SQL比較選項和幫助,並保存結果到Excel中。

謝謝。

private void button2_Click(object sender, EventArgs e) 
{ 
     if(checkBox1.Checked) 
     { 
      SqlConnection sqlConnection1 = new SqlConnection(MyConString); 
      SqlCommand cmd = new SqlCommand(); 
      SqlDataReader reader; 

      cmd.CommandText = "select Table1.Column from Table1 where Table1.Column1 not in (select Table2.Column2 from Table2 where Table2.Column2 = Table1.Column1)"; 
      cmd.CommandType = CommandType.Text; 
      cmd.Connection = sqlConnection1; 

      sqlConnection1.Open(); 

      reader = cmd.ExecuteReader(); 
     } 
} 

我要救這個查詢到Excel的結果文件

+0

所以你想要一個C#代碼來保存resault excel文件? – Sami

+0

是的。 Exectly是 –

回答

1

您可以將resault保存到一個.CSV文件中像如下:

private void button2_Click(object sender, EventArgs e) 
    { 
      if(checkBox1.Checked) 
      { 
       SqlConnection sqlConnection1 = new SqlConnection(MyConString); 
       SqlCommand cmd = new SqlCommand(); 
       SqlDataReader reader; 

       cmd.CommandText = "INSERT INTO OPENROWSET('Microsoft.ACE.OLEDB.12.0','Text;Database=D:\;HDR=YES;FMT=Delimited','SELECT * FROM [FileName.csv]') select Table1.Column from Table1 where Table1.Column1 not in (select Table2.Column2 from Table2 where Table2.Column2 = Table1.Column1)"; 
       cmd.CommandType = CommandType.Text; 
       cmd.Connection = sqlConnection1; 

       sqlConnection1.Open(); 

       reader = cmd.ExecuteReader(); 
      } 
    } 

如果你需要做的是用SSMS您可以使用Query toolbar,只需點擊results to file並執行您的查詢。

+0

非常感謝您薩米先生.. –

+0

非常感謝你薩米先生.. 至於現在,我得到別的東西。和我使用你的方法後錯誤。 無法從OLE DB提供程序「Microsoft.ACE.OLEDB.12.0」鏈接服務器「(空)」列信息 我也改變了SQL特設權限1。 –