2013-05-28 5 views
0

Я пытаюсь найти способ преобразования строки типа данных в nvarchar, пока я импортирую данные из таблицы Excel. Пока у меня есть этот кусок кода для импорта данных через C#.Преобразование строки в nvarchar (import excel to mssql)

// Connection String to Excel Workbook,Replace DataSource value to point to your excel file location 
    string excelConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\Folder\\Folder\\Excel_File.xls ;Extended Properties=Excel 8.0"; 


    // Create Connection to Excel Workbook 
    using (OleDbConnection connection = 
       new OleDbConnection(excelConnectionString)) 
    { 
     OleDbCommand command = new OleDbCommand 
       ("Select * FROM [Sheet1$]", connection); 

     connection.Open(); 

     // Create DbDataReader to Data Worksheet 
     using (DbDataReader dr = command.ExecuteReader()) 
     { 
      // SQL Server Connection String 
      string sqlConnectionString = "Data Source=localhost;Initial Catalog=DatabaseName;Integrated Security=True"; 

      // Bulk Copy to SQL Server 
      using (SqlBulkCopy bulkCopy = 
         new SqlBulkCopy(sqlConnectionString)) 
      { 
       bulkCopy.DestinationTableName = "Table_Name"; 
       bulkCopy.WriteToServer(dr); 
       MessageBox.Show("Data Exported To Sql Server Successfully"); 
      } 
     } 

Я искал способы преобразования из строки в NVARCHAR но только примеры, которые я нашел только для преобразования строки, собранной из текстовых полей или через консоли. У меня есть один столбец, хотя в типе даты, но я компенсировал его в MSSQL.

Если бы кто-нибудь мог дать мне образец кода того, что я должен делать, было бы весьма полезно.

+1

Какая ошибка? – Romoku

+0

C# строки Unicode, такие как nvarchar, aren 'they? Наверное, я не понимаю, почему его нужно преобразовать. Может быть, я не знаю столько, сколько думаю? –

+0

Ну, когда я пытаюсь импортировать, он говорит мне: «Данное значение типа String из источника данных не может быть преобразовано в тип nvarchar указанного целевого столбца». – KuyaBraye

ответ

0

Мое подозрение, что вы «спотыкаетесь» над некоторыми скрытыми символами, которые Excel вставляет в ваши текстовые строки. Попробуйте зарегистрировать импортированные данные, чтобы убедиться, что они чисты.

+0

Кажется, что эта таблица Excel была создана, она была в общем формате. Когда я попытался изменить таблицу Excel, чтобы сделать все столбцы «текстом», за исключением столбца даты, некоторые из данных становятся хэш-символами, например «################# ###» – KuyaBraye