【发布时间】:2009-11-08 05:19:28
【问题描述】:
任何人都可以帮助将 C# 中的字符串值转换为 Sql 中的位等价物。我正在尝试将数据表的值批量复制到 Sql 表中。我在数据表中的所有值都是字符串格式。当我尝试批量复制到 SQL 表时,我收到位数据类型列的错误。任何人都可以在我批量复制到 SQL 表之前发布 C# 代码以将字符串转换为位类型。
谢谢, 波动率
【问题讨论】:
标签: c# asp.net sql sql-server sqlbulkcopy
任何人都可以帮助将 C# 中的字符串值转换为 Sql 中的位等价物。我正在尝试将数据表的值批量复制到 Sql 表中。我在数据表中的所有值都是字符串格式。当我尝试批量复制到 SQL 表时,我收到位数据类型列的错误。任何人都可以在我批量复制到 SQL 表之前发布 C# 代码以将字符串转换为位类型。
谢谢, 波动率
【问题讨论】:
标签: c# asp.net sql sql-server sqlbulkcopy
如果您的字符串是“真”和“假”(忽略大小写和空格),这将起作用:
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 需要一个布尔值。
【讨论】:
SQL Server 将识别"true" and "false" for the bit datatype。此外,零存储零,非零存储为“1”。
您发送的是"true" 还是true?
如果您在使用双打时遇到相同的错误(根据 cmets 到其他答案),那么我怀疑您正在发送引号。
【讨论】:
SQL Server 中的 bit 数据类型与 C# 中的 bool 数据类型匹配。因此,只需将您的字符串转换为 bools(使用 bool.Parse() 或您最喜欢的替代方法),您就应该设置好了。
【讨论】:
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;
}
【讨论】: