将数据从MS Access导入SQL Server

时间:2015-12-14 19:45:02

标签: c# sql-server ms-access

我在Access数据库中有一堆是/否字段,我需要进入SQL Server。如果我查看Access数据,那些字段包含0或-1。在SQL Server端,我创建了BIT类型的字段,这对我不起作用,我假设是因为BIT期望0或1.这是我的错误:

The given value of type String from the data source cannot be converted to type bit of the specified target column. ---> 
System.FormatException: Failed to convert parameter value from a String to a Boolean. 
String was not recognized as a valid Boolean

我也试过使用nvarchar(3)也没用,说"数据源中String类型的给定值无法转换为nvarchar类型"

我应该使用哪种数据类型?我尝试过BIT,TINYINT,NVARCHAR(3),CHAR(1)和CHAR(2)。

使用CHAR(1)或CHAR(2)给出了不同的错误:

System.Data.SqlClient.SqlException (0x80131904): Received an invalid column length from the bcp client for colid 13.

但无论哪种方式都无效

2 个答案:

答案 0 :(得分:0)

我总是使用SMALLINT(2字节有符号整数)来允许0和-1,并避免使用BIT字段的麻烦。

https://msdn.microsoft.com/en-us/library/ms187745.aspx

答案 1 :(得分:0)

使用一点,你想要在导入过程中从Yes转换为1而No转换为0,你可以使用CASE语句来处理这个操作。

IE

CASE WHEN colVal = 'Yes' THEN 1 ELSE 0