请教一个c#Lambda表达式参数类型的问题

ajdopteronmomo 2013-08-23 11:44:24
数据库里有个字段state是nvarchar(2)类型的,存的是01,02类似的这种两位状态值,现在我要查询的时候要查出这个状态值大于30的数据,我是这样写的:
(p=>conver.toint32(p.state)>30)
这样写是会报错的,原因我百度了一下好像是因为类型必须是确定的,请教一下大家有什么解决方法没有。
...全文
262 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ajdopteronmomo 2013-08-26
  • 打赏
  • 举报
回复
(1)spec = spec.And(Specification<T_U_DA_PROJECT>.Create(p => Convert.ToInt32(p.PROJECTSTATE)>=30));
(2)spec = spec.And(Specification<T_U_DA_PROJECT>.Create(p => p.PROJECTSTATE == "30" || p.PROJECTSTATE == "35" || p.PROJECTSTATE == "40"));

我觉得这两行代码效果一样,但是第一句话是会报错的:异常详细信息: System.NotSupportedException: Int32 ToInt32(System.String)
三五月儿 2013-08-23
  • 打赏
  • 举报
回复
哥们,贴出异常信息吧
EnForGrass 2013-08-23
  • 打赏
  • 举报
回复
不知道全部代码, var query=dbdata.Where(p=>Convert.ToInt32(p.state)>30);
ssmartboy 2013-08-23
  • 打赏
  • 举报
回复
把整段代码贴一贴
  • 打赏
  • 举报
回复
类型转换int.Parse(p.state)>
ssmartboy 2013-08-23
  • 打赏
  • 举报
回复
var query=dbdata.AsEnumerable().Where(p=>Convert.ToInt32(p.state)>30); 试一试,要导入System.Data.DataSetExtensions.dll程序集哦!
q107770540 2013-08-23
  • 打赏
  • 举报
回复
从你目前帖出的代码,没看出问题 问题不在这里

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧