2016-12-13 5 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); 
         } 
        } 

EDIT: Вот команда 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) 
Смежные вопросы