2017-02-19 7 views
0

Ну, мой вопрос связан с Windows Forms, 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# сохранял файл resel в файле excel? – Sami

+0

Да. Явно, что –

ответ

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» для связанного сервера »(null)« Я изменил специальные разрешения для SQL для 1. –