Table select in 报错

程序小海 2014-09-19 05:26:50
                string rowValue = "'4F1FBED1-B3CF-4E4E-B0E9-13C700D75135','407FDB04-9BE1-42D2-9D84-10830075579E','97A29AA4-2C88-436A-A526-108300755B25','573A9A8A-DF31-44B5-944A-126500CA199C'";
DataRow[]= FieldList.Select(" FUID in (" + rowValue + ") ", "ControlType");


“/”应用程序中的服务器错误。
无法在 System.Guid 和 System.String 上执行“=”操作。


为啥会报这个错?
...全文
158 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
EnForGrass 2014-09-22
  • 打赏
  • 举报
回复
用CONVERT函数转换一下看行不行??语法去查一下,大概是这样

string rowValue = "'4F1FBED1-B3CF-4E4E-B0E9-13C700D75135','407FDB04-9BE1-42D2-9D84-10830075579E','97A29AA4-2C88-436A-A526-108300755B25','573A9A8A-DF31-44B5-944A-126500CA199C'";
                DataRow[]= FieldList.Select(" Convert(nvarchar(400),FUID ) in (" + rowValue + ")  ", "ControlType");
smthgdin_020 2014-09-22
  • 打赏
  • 举报
回复
引用 楼主 stone1314 的回复:
                string rowValue = "'4F1FBED1-B3CF-4E4E-B0E9-13C700D75135','407FDB04-9BE1-42D2-9D84-10830075579E','97A29AA4-2C88-436A-A526-108300755B25','573A9A8A-DF31-44B5-944A-126500CA199C'";
                DataRow[]= FieldList.Select(" FUID in (" + rowValue + ")  ", "ControlType");
“/”应用程序中的服务器错误。 无法在 System.Guid 和 System.String 上执行“=”操作。 为啥会报这个错?
因为rowValue本身是字符串,FUID是guid,你用or可行是因为or的话,字符串是分开的,程序能转成guid;原先不行是因为你一连串的guid当成1个字符串去转换,自然不成功。
程序小海 2014-09-22
  • 打赏
  • 举报
回复
引用 1 楼 bdmh 的回复:
字段类型不符,你是guid类型字段吧,而你的条件是字符串
貌似是的 但是我每个写成or的形式 就没问题了 drow = FieldList.Select(" FUID ='4F1FBED1-B3CF-4E4E-B0E9-13C700D75135' or FUID ='407FDB04-9BE1-42D2-9D84-10830075579E' or FUID = '97A29AA4-2C88-436A-A526-108300755B25' or FUID ='573A9A8A-DF31-44B5-944A-126500CA199C' ", "ControlType"); 这样就没问题了
程序小海 2014-09-22
  • 打赏
  • 举报
回复
引用 2 楼 duanzi_peng 的回复:
rowValue 中的单引号去掉试试
去掉是不可以的
程序小海 2014-09-22
  • 打赏
  • 举报
回复
引用 6 楼 Chinajiyong 的回复:
用CONVERT函数转换一下看行不行??语法去查一下,大概是这样

string rowValue = "'4F1FBED1-B3CF-4E4E-B0E9-13C700D75135','407FDB04-9BE1-42D2-9D84-10830075579E','97A29AA4-2C88-436A-A526-108300755B25','573A9A8A-DF31-44B5-944A-126500CA199C'";
                DataRow[]= FieldList.Select(" Convert(nvarchar(400),FUID ) in (" + rowValue + ")  ", "ControlType");
drow = FieldList.Select(" Convert(FUID ,'System.String' ) in (" + rowValue + ") ", "ControlType");
exception92 2014-09-19
  • 打赏
  • 举报
回复
rowValue 中的单引号去掉试试
bdmh 2014-09-19
  • 打赏
  • 举报
回复
字段类型不符,你是guid类型字段吧,而你的条件是字符串

110,567

社区成员

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

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

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