Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/70.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# 将nvarchar值“1500”转换为数据类型int时,转换失败_C#_Sql - Fatal编程技术网

C# 将nvarchar值“1500”转换为数据类型int时,转换失败

C# 将nvarchar值“1500”转换为数据类型int时,转换失败,c#,sql,C#,Sql,这是我的错误: 将nvarchar值“1500”转换为数据类型int时,转换失败 描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解更多信息 有关错误的信息及其在代码中的来源 异常详细信息:System.Data.SqlClient.SqlException:将nvarchar值“1500”转换为数据类型int时,转换失败 上面的值1500是一个应该有“我认为这”的量,它给了我我认为的错误。请给我一个解决方案。要在SQL中从nvarchar转换为int,需要删除逗号。使用“150

这是我的错误:

将nvarchar值“1500”转换为数据类型int时,转换失败

描述:执行当前web请求期间发生未处理的异常。请查看堆栈跟踪以了解更多信息 有关错误的信息及其在代码中的来源

异常详细信息:System.Data.SqlClient.SqlException:将nvarchar值“1500”转换为数据类型int时,转换失败

上面的值1500是一个应该有“我认为这”的量,它给了我我认为的错误。请给我一个解决方案。

要在SQL中从nvarchar转换为int,需要删除逗号。使用“1500”而不是“1500”。更好的是,从实际的int开始,而不是像1500中那样的字符串。

要在SQL中从nvarchar转换为int,需要删除逗号。使用“1500”而不是“1500”。更好的是,从实际的int开始,而不是像1500中那样的字符串。

如果您使用int.Parse进行转换,那么请尝试使用numberstyle.allowthoussands标志,例如:

int parsedInt= int.Parse(stringToParse, NumberStyles.AllowThousands);
如果使用int.Parse进行转换,请尝试使用NumberStyles.AllowThousands标志,例如:

int parsedInt= int.Parse(stringToParse, NumberStyles.AllowThousands);

你能试试这样的吗

int x = 0;
string result = "1,500";
x = int.Parse(result, System.Globalization.NumberStyles.AllowThousands, System.Globalization.CultureInfo.InvariantCulture);
这允许使用字符串中存在的数千seperator解析数字


如果您只需要用于显示目的的值,那么我认为将它们转换为int没有任何意义,因为您已经将其格式化为字符串。

您可以尝试类似的方法吗

int x = 0;
string result = "1,500";
x = int.Parse(result, System.Globalization.NumberStyles.AllowThousands, System.Globalization.CultureInfo.InvariantCulture);
这允许使用字符串中存在的数千seperator解析数字


如果您只需要用于显示目的的值,那么我认为将其转换为int没有任何意义,因为您已经将其格式化为字符串。

如果您想在SQL Server或数据库端解决此问题,可以尝试以下解决方案: 你所需要做的就是先将价值转化为金钱,然后再转化为金钱。以下代码工作正常:

select cast(cast('1,500' as money) as int)
但是,如果您想在.Net framework端解决此问题,您可以尝试以下代码,这些代码也可以正常工作:

 string s = "1,500";
 int i = Int32.Parse(s, NumberStyles.AllowThousands);

如果要在SQL Server或数据库端解决此问题,可以尝试以下解决方案: 你所需要做的就是先将价值转化为金钱,然后再转化为金钱。以下代码工作正常:

select cast(cast('1,500' as money) as int)
但是,如果您想在.Net framework端解决此问题,您可以尝试以下代码,这些代码也可以正常工作:

 string s = "1,500";
 int i = Int32.Parse(s, NumberStyles.AllowThousands);


添加您正在使用的代码。特别是SQL部分。添加您正在使用的代码。特别是SQL部分。但是我应该使用逗号显示我的值。。任何不删除逗号的解决方案。应使用字符串格式处理显示,而不是更改源数据。但我应使用逗号显示我的值。。任何不删除逗号的解决方案。应使用字符串格式,而不是更改源数据来处理显示。请从cuedetails中选择name、image1、price,其中price介于CAST+a+AS INT和CAST+b+AS INT之间,order by price desc这是我的sql查询,而不是im。。在这里我得到了错误,据我所知,问题在于SQL无法在强制转换为INT部分中处理带有数千个分隔符的整数。为什么不在查询中传递前删除分隔符?你可以试试a.替换,,;选择名称,image1,price from cuedetails,其中按价格描述在CAST+a+AS INT和CAST+b+AS INT之间的价格是我的sql查询,而不是im。。在这里我得到了错误,据我所知,问题在于SQL无法在强制转换为INT部分中处理带有数千个分隔符的整数。为什么不在查询中传递前删除分隔符?你可以试试a.替换,,;选择名称,image1,price from cuedetails,其中按价格描述在CAST+a+AS INT和CAST+b+AS INT之间的价格是我的sql查询,而不是im。。这里我遇到了一个错误,为什么不按上面的方式转换后传递int值呢?从cuedetails中选择name,image1,price,其中按价格描述的CAST+a+as int和CAST+b+as int之间的价格顺序是我的sql查询,而不是im。。这里我得到了一个错误,为什么不按上面的方式转换后传递int值呢?