2016-12-13 121 views
0

我有一個電子表格,其中一列是IsActive,所有值都是1(Excel中的數字數據類型)。在SQL Server中,其插入的表具有IsActive的位數據類型。但是,我得到的錯誤,當試圖插入的數據是從Excel電子表格中導入位類型到SQL Server中

The given value of type String from the data source cannot be converted to type bit of the specified target column. 

有沒有在Excel中的數據類型,這將是在SQL Server中的位兼容?

excelConnection.Open(); 
        using (OleDbDataReader dReader = cmd.ExecuteReader()) 
        { 
         using (SqlBulkCopy sqlBulk = new SqlBulkCopy(strConnection)) 
         { 
          //Give your Destination table name 
          sqlBulk.DestinationTableName = "Medicine"; 
          sqlBulk.WriteToServer(dReader); 
         } 
        } 

編輯:這裏的OLEDB命令

using (OleDbCommand cmd = new OleDbCommand("Select ...[IsActive]... from [Sheet1$]", excelConnection) 

我顯然不希望字符串IsActive要插入一個位列。

+0

是否因爲列名IsActive被選爲字符串? –

+0

我會這樣想,試着明確地轉換爲位或布爾值。 – Anand

回答

0
using (OleDbCommand cmd = new OleDbCommand("Select ...CAST(COALESCE([IsActive], 0) AS BIT)... from [Sheet1$]", excelConnection) 
相關問題