2013-05-28 71 views
0

我一直在試圖找到一種方法來將數據類型字符串轉換爲nvarchar,同時我從Excel電子表格中導入數據。到目前爲止,我有這段代碼通過C#導入數據。將字符串轉換爲nvarchar(將excel導入到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#字符串是像nvarchar一樣的Unicode,是不是?我想我不明白爲什麼需要轉換。也許我不像我想的那麼瞭解? –

+0

那麼,當我嘗試導入它告訴我「來自數據源的字符串類型的給定值不能轉換爲指定的目標列的類型nvarchar」。 – KuyaBraye

回答

0

我的懷疑是,你正在'絆倒'一些隱藏的字符,Excel插入到你的文本字符串中。嘗試記錄導入的數據以確保它是乾淨的。

+0

似乎這個excel電子表格是創建的,但它是一些通用格式。當我試圖修改excel電子表格以將所有列設置爲「文本」時,除了日期欄目之外,某些數據變爲散列字符,例如「################# ###」 – KuyaBraye