Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/31.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在插入数据库之前将字符串转换为位_C#_Asp.net_Sql_Sql Server_Sqlbulkcopy - Fatal编程技术网

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数据类型匹配。因此,只需将字符串转

有人能帮忙把C#中的字符串值转换成Sql中的等效位吗。我试图将datatable的值复制到Sql表中。数据表中的所有值都是字符串格式。当我尝试批量复制到SQL表时,我发现位数据类型列有一个错误。在我批量复制到SQL表之前,谁能发布C代码将字符串转换为位类型

谢谢,
Vix

SQL 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;
}