加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

C#string to number,当Parse失败时,TryParse返回true

发布时间:2020-12-15 22:13:36 所属栏目:百科 来源:网络整理
导读:我的数据库(SQL Server)中有一列将平均值存储为varchar. 值并不总是有效数字,它可以是:0,12,5.5,.4,4.0,6.,5.21428571428571428571428571428571428571,X,失败或只是空文本. 使用linq分配变量时,我想显示: 如果平均值是有效数字且 = 4则成功 如果平均值是有
我的数据库(SQL Server)中有一列将平均值存储为varchar.

值并不总是有效数字,它可以是:0,12,5.5,.4,4.0,6.,5.21428571428571428571428571428571428571,X,失败或只是空文本.

使用linq分配变量时,我想显示:

>如果平均值是有效数字且> = 4则成功
>如果平均值是有效数字且< 4
>如果平均值不是有效数字,则为原始文本

代码 :

myresults = myDataContext.myDbFunction()
double note;
from a in myresults
select new MainReportModel()
{
    Id = a.id,Lastname = a.nom,Firstname = a.prenom,Average = a.moyenne,Result = double.TryParse(a.moyenne.Trim(),NumberStyles.Number,CultureInfo.InvariantCulture,out note) ? (double.Parse(a.moyenne.Trim(),CultureInfo.InvariantCulture) < 4 ? "failed" : "success") : a.moyenne
}

但是Parse失败了.

当用任何硬编码值替换double.Parse(a.moyenne.Trim()时(例如double.Parse(“3.3”),它可以正常工作.

所以似乎a.moyenne.Trim()的一个值导致Parse失败.

如果TryParse返回true,它怎么会失败?

编辑:这是错误消息:

Could not translate expression 'value(MyProjectWeb.Models.MyProjectDataContext).myDbFunction().Select(a => new MainReportModel() {Id = a.id,Result = IIF(TryParse(a.moyenne.Trim(),Number,Invoke(value(System.Func`1[System.Globalization.CultureInfo])),Invoke(value(System.Func`1[System.Double]))),IIF((Parse(a.moyenne.Trim(),Invoke(value(System.Func`1[System.Globalization.CultureInfo]))) < 4),Invoke(value(System.Func`1[System.String])),"success"),((a.moyenne) + "</span>"))})' into SQL and could not treat it as a local expression.

解决方法

你不能在Sql服务器上执行TryParse,但是如果你没有做进一步的选择标准,那么你可以尝试从Sql中提取数据,然后在客户端上进行解析.

例如

myresults = myDataContext.myDbFunction()
double note;

var list =(from a in myresults
select new 
{
   a.id,a.nom,a.prenom,a.moyenne,}).ToList();


var finalResults = (from a in list 

select new MainReportModel()
{
   Id = a.id,CultureInfo.InvariantCulture) < 4 ? "failed" : "success") : a.moyenne
}

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读