C# 在插入数据库之前将字符串转换为位
有人能帮忙把C#中的字符串值转换成Sql中的等效位吗。我试图将datatable的值复制到Sql表中。数据表中的所有值都是字符串格式。当我尝试批量复制到SQL表时,我发现位数据类型列有一个错误。在我批量复制到SQL表之前,谁能发布C代码将字符串转换为位类型 谢谢,C# 在插入数据库之前将字符串转换为位,c#,asp.net,sql,sql-server,sqlbulkcopy,C#,Asp.net,Sql,Sql Server,Sqlbulkcopy,有人能帮忙把C#中的字符串值转换成Sql中的等效位吗。我试图将datatable的值复制到Sql表中。数据表中的所有值都是字符串格式。当我尝试批量复制到SQL表时,我发现位数据类型列有一个错误。在我批量复制到SQL表之前,谁能发布C代码将字符串转换为位类型 谢谢, VixSQL Server中的位数据类型与C#中的bool数据类型匹配。因此,只需将字符串转换为bools(使用或您最喜欢的替代项),就可以进行设置。SQL Server中的位数据类型与C中的bool数据类型匹配。因此,只需将字符串转
VixSQL Server中的
位数据类型与C#中的bool
数据类型匹配。因此,只需将字符串转换为bool
s(使用或您最喜欢的替代项),就可以进行设置。SQL Server中的位
数据类型与C中的bool
数据类型匹配。因此,只需将字符串转换为bool
s(使用或您最喜欢的选项),您就可以进行设置。如果您的字符串为“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值。如果字符串为“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需要布尔值。SQL Server将识别。此外,零存储零,非零存储为“1”
您发送的是“true”
还是true
如果您在使用double时遇到相同的错误(根据对其他答案的评论),那么我怀疑您发送的是引号。SQL Server会识别。此外,零存储零,非零存储为“1”
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;
}
您发送的是“true”
还是true
如果您在使用double时遇到相同的错误(根据对其他答案的评论),那么我怀疑您发送的是引号。谢谢Ray。对于相同的场景,如何将字符串转换为float。我尝试了convert.ToDouble(str);但是它不起作用。请帮助。我使用double.Parse()作为'float'SQL数据类型,但是Convert.ToDouble()只调用double.Parse(),所以它应该起作用。Convert.ToDouble()调用本身是否引发异常,或者SQL是否拒绝结果值?另外,当我尝试批量复制转换后已有单元格的datatable的值时,您使用的是什么数据访问层(即,您使用什么调用来提交数据?)Ray。System.InvalidOperationException:数据源中字符串类型的给定值无法转换为指定目标列的浮点类型。-->System.FormatException:无法将参数值从字符串转换为双精度。-->System.FormatException:输入字符串的格式不正确。当我调用这个方法bulkcopy.WriteToServer(dtUpdate)时,在System.Number.StringToNumber(字符串str,NumberStyles选项,NumberBuffer&Number,NumberFormatInfo,Boolean parseDecimal);若要将值从datatable复制到Sql表,我得到了错误。但当我看到datatable中引发异常的值时,它是一个有效的数字。该列的所有值都是有效的数字。如果dtUpdate中的值是字符串且无法解析,则会发生引用的异常。一些可能性:Column.DataType不是双精度的,列名或顺序混淆了。谢谢Ray。对于相同的场景,如何将字符串转换为float。我尝试了convert.ToDouble(str);但是它不起作用。请帮助。我使用double.Parse()作为'float'SQL数据类型,但是Convert.ToDouble()只调用double.Parse(),所以它应该起作用。Convert.ToDouble()调用本身是否引发异常,或者SQL是否拒绝结果值?另外,当我尝试批量复制转换后已有单元格的datatable的值时,您使用的是什么数据访问层(即,您使用什么调用来提交数据?)Ray。System.InvalidOperationException:数据源中字符串类型的给定值无法转换为指定目标列的浮点类型。-->System.FormatException:无法将参数值从字符串转换为双精度。-->System.FormatException:输入字符串的格式不正确。当我调用这个方法bulkcopy.WriteToServer(dtUpdate)时,在System.Number.StringToNumber(字符串str,NumberStyles选项,NumberBuffer&Number,NumberFormatInfo,Boolean parseDecimal);若要将值从datatable复制到Sql表,我得到了错误。但当我看到datatable中引发异常的值时,它是一个有效的数字。该列的所有值都是有效的数字。如果dtUpdate中的值是字符串且无法解析,则会发生引用的异常。一些可能性:Column.DataType不是双精度的,列名或顺序混淆了。谢谢,Daniel。对于相同的场景,如何将字符串转换为float。我尝试使用convert.ToDouble(str);但它不起作用。请帮助谢谢,丹尼尔。我如何在相同的场景中将字符串转换为浮点。我尝试使用convert.ToDouble(str);但是没用,请帮忙
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;
}