在插入数据库之前将String转换为位

时间:2009-11-08 05:19:29

标签: c# asp.net sql sql-server sqlbulkcopy

任何人都可以帮助将C#中的字符串值转换为Sql中的等效位。我正在尝试将数据表的值批量复制到Sql表中。我在数据表中的所有值都是字符串格式。当我尝试批量复制到SQL表时,我遇到了bit数据类型列的错误。任何人都可以在我批量复制到SQL表之前发布C#代码将字符串转换为位类型。

谢谢, VIX

4 个答案:

答案 0 :(得分:5)

如果您的字符串是“true”和“false”(忽略大小写和空格),这将起作用:

bool bit = bool.Parse(str);

如果您的字符串是其他内容,您可以使用:

bool bit = !string.IsNullOrEmpty(str) &&
  (str[0]=='Y' || str[0]=='y' || str[0]=='T' || str[0]=='t' || str[0]=='1');

SQL想要一个bool值。

答案 1 :(得分:1)

SQL Server将识别"true" and "false" for the bit datatype。此外,零存储零,非零存储为“1”。

您是要发送"true"还是true

如果你对双打有同样的错误(根据对其他答案的评论),那么我怀疑你是在发送引号。

答案 2 :(得分:0)

SQL Server中的bit数据类型与C#中的bool数据类型匹配。因此,只需将字符串转换为bool s(使用bool.Parse()或您最喜欢的替代品),就应该设置。

答案 3 :(得分:0)

int a = Convert.ToInt32( row.ItemArray[5]);
bool b;
b = Convert.ToBoolean(a);
switch (a)
{
    case 1:
        b = true;
        break;
    case 0:
        b = false;
        break;
}
相关问题