我在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.
但无论哪种方式都无效
答案 0 :(得分:0)
我总是使用SMALLINT
(2字节有符号整数)来允许0和-1,并避免使用BIT字段的麻烦。
答案 1 :(得分:0)
使用一点,你想要在导入过程中从Yes转换为1而No转换为0,你可以使用CASE语句来处理这个操作。
IE
CASE WHEN colVal = 'Yes' THEN 1 ELSE 0