关于数组的Sort 函数。

xuliangone1 2015-12-30 10:11:12
代码1:
string sql = " SELECT DISTINCT  USERDEFINECOL04  FROM   MES_EQP_EQP    where CURRENTSTATE in ('IDLE','Run') and status='Enable'";
SorterEqps = InfoCenter.GetList<EquipmentInfo>(sql);
SorterEqps.Sort(p => p.UserDefineColumn04);

代码2:
string sql = " SELECT DISTINCT a.USERDEFINECOL04  FROM   MES_EQP_EQP a   where CURRENTSTATE in ('IDLE','Run') and status='Enable' ";
SorterEqps = InfoCenter.GetList<EquipmentInfo>(sql);
SorterEqps.Sort(p => p.UserDefineColumn04);


代码1 执行排序的时候报错:列“USERDEFINECOL04”不属于表 Table。
我也不知道为什么 改为代码2就没有问题了(就加了个a别名)。

我想知道为什么
...全文
176 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
xuliangone1 2015-12-30
  • 打赏
  • 举报
回复
引用 1 楼 starfd 的回复:
还真看不出来为什么,你将sql直接在工具里面查会报错吗?
不会报错,数据能查不出 就是排序报错。 : 未能比较数组中的两个元素。 在 System.Collections.Generic.ArraySortHelper`1.Sort(T[] keys, Int32 index, Int32 length, IComparer`1 comparer) 在 System.Array.Sort[T](T[] array, Int32 index, Int32 length, IComparer`1 comparer) 在 System.Collections.Generic.List`1.Sort(Comparison`1 comparison) 在 Ares.Cimes.IntelliService.ExtensionMethod.Sort[TSource,TKey](List`1 list, Func`2 keySelector) 在 ChipRule.WIP.Repair.LoadOperationControlDefault(String strFactory) 位置 d:\CODE\CNL\ChipRule\WIP\Repair.aspx.cs:行号 103 在 ChipRule.WIP.Repair.ddlFactory_SelectedIndexChanged(Object sender, EventArgs e) 位置 d:\CODE\CNL\ChipRule\WIP\Repair.aspx.cs:行号 218 列“USERDEFINECOL04”不属于表 Table。
jerry_zjnb 2015-12-30
  • 打赏
  • 举报
回复
你试试这样行吗?

string sql = " SELECT DISTINCT  USERDEFINECOL04  FROM   MES_EQP_EQP    where CURRENTSTATE in ('IDLE','Run') and status='Enable'";
            SorterEqps = InfoCenter.GetList<EquipmentInfo>(sql);    
            SorterEqps.Sort(p => p);
  • 打赏
  • 举报
回复
还真看不出来为什么,你将sql直接在工具里面查会报错吗?
小K的大师兄 2015-12-30
  • 打赏
  • 举报
回复
这种问题 没有代码和相关的数据 很难说得清楚
xuliangone1 2015-12-30
  • 打赏
  • 举报
回复
引用 5 楼 xdashewan 的回复:
InfoCenter.GetList发出来看下
其实 类是一个类,SQL也是一个SQL 为什么结果完全不一样呢? 关键就是SQL那个别名
xuliangone1 2015-12-30
  • 打赏
  • 举报
回复
引用 5 楼 xdashewan 的回复:
InfoCenter.GetList发出来看下
没有此类的代码,DLL。也没有去反编译。
jerry_zjnb 2015-12-30
  • 打赏
  • 举报
回复
引用 4 楼 xuliangone1 的回复:
[quote=引用 2 楼 jerry_zjnb 的回复:] 你试试这样行吗?

string sql = " SELECT DISTINCT  USERDEFINECOL04  FROM   MES_EQP_EQP    where CURRENTSTATE in ('IDLE','Run') and status='Enable'";
            SorterEqps = InfoCenter.GetList<EquipmentInfo>(sql);    
            SorterEqps.Sort(p => p);
不行 还是报错 04不在表中,为什么加个别名就好了呢[/quote] 如果不介意,可以把相关的几个类的代码贴出来看看,一起找找原因。
xdashewan 2015-12-30
  • 打赏
  • 举报
回复
InfoCenter.GetList发出来看下
xuliangone1 2015-12-30
  • 打赏
  • 举报
回复
引用 2 楼 jerry_zjnb 的回复:
你试试这样行吗?

string sql = " SELECT DISTINCT  USERDEFINECOL04  FROM   MES_EQP_EQP    where CURRENTSTATE in ('IDLE','Run') and status='Enable'";
            SorterEqps = InfoCenter.GetList<EquipmentInfo>(sql);    
            SorterEqps.Sort(p => p);
不行 还是报错 04不在表中,为什么加个别名就好了呢

110,556

社区成员

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

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

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