2013-04-09 3 views
1

Этот код считывает информацию о таблице из файла доступа (.mdb) и копирует информацию о таблице в таблицу сервера sql. Этот код копирует field1 в файле доступа к field1 в таблице сервера sql и копирует field2 в field2 и ... этот код работает правильно, но я хочу изменить копию. Я хочу скопировать name поле из файла доступа в nameperson поле в таблице сервера sql. Например, копия field1 при доступе к field5 в таблице серверов sql. Как это сделать?Связь между таблицей файлов доступа и таблицей SQL Server

OpenFileDialog openfiledialog1 = new OpenFileDialog(); 
    openfiledialog1.Title = "select path access file"; 

     openfiledialog1.Filter = "Access 2003 (*.mdb)|*.mdb"; 
     if (openfiledialog1.ShowDialog() == DialogResult.OK) 
     { 

      string connectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + openfiledialog1.FileName; 
      const string connectionStringDest = @"server=ahmad-pc\anfd;database = phonebook;Integrated Security = true"; 
      using (var sourceConnection = new OleDbConnection(connectionString)) 
      { 
       sourceConnection.Open(); 

       var commandSourceData = new OleDbCommand("SELECT id , name , family from numberperson", sourceConnection); 
       var reader = commandSourceData.ExecuteReader(); 

       using (var destinationConnection = new SqlConnection(connectionStringDest)) 
       { 
        destinationConnection.Open(); 

        using (var bulkCopy = new SqlBulkCopy(destinationConnection)) 
        { 
         bulkCopy.DestinationTableName = "profile2"; 

         try 
         { 
          bulkCopy.WriteToServer(reader); 
         } 
         catch (Exception ex) 
         { 
          Console.WriteLine(ex.Message); 
         } 
         finally 
         { 
          reader.Close(); 
         } 
        } 
       } 
       MessageBox.Show("copy successully"); 
      } 

     } 

ответ

0

Смотрите ниже примере, я добавил одно отображение для вас преобразования имени столбца nameperson

[...] 
using (var bulkCopy = new SqlBulkCopy(destinationConnection)) 
{    
bulkCopy.ColumnMappings.Add("name", "nameperson"); //THIS A MAPPING REPLACE IT WITH YOUR NEED 
bulkCopy.DestinationTableName = "profile2"; 
[....] 
+0

спасибо. теперь скопируйте поле имени в поле nameperson в sqlserver. – anfd

Смежные вопросы