首页 新闻 搜索 专区 学院

linq to datatable

0
悬赏园豆:5 [已解决问题] 解决于 2012-12-07 10:20

从datatable中取出20条记录,使用linq技术,先按照平常的模糊查询 like ‘abc%’进行查询,如果取出的记录数不足20条,则按照模糊查询的 like‘%abc%’进行查询,请问linq大侠,这个linq语句如何写?

乔乔lovefreedom的主页 乔乔lovefreedom | 初学一级 | 园豆:9
提问于:2012-12-06 17:28
< >
分享
最佳答案
0
            DataTable dt = 得到的DataTable

            var query=dt.AsEnumerable().Where(A => A.Field<string>("查询字段").EndsWith("abc"));

            if (query.Count()<20)
            {
                var query2 = dt.AsEnumerable().Where(A => A.Field<string>("查询字段").IndexOf("abc")>-1);
            }
收获园豆:5
田麦成 | 小虾三级 |园豆:1984 | 2012-12-06 17:58
其他回答(5)
0

datatable 不用 linq,datatable有个 select 方法。

Launcher | 园豆:45045 (高人七级) | 2012-12-06 17:51
0

楼上的正解

jason2013 | 园豆:1998 (小虾三级) | 2012-12-07 08:48
0
var query=dt.AsEnumerable().Where(A => A.Field<string>("查询字段").EndsWith("abc"));

应该是
var query=dt.AsEnumerable().Where(A => A.Field<string>("查询字段").StartsWith("abc"));

吧?
jone_e | 园豆:1410 (小虾三级) | 2012-12-07 09:36
0

二楼和四楼正解。

jerry-Tom | 园豆:4077 (老鸟四级) | 2012-12-07 10:07
0

db->list 这一步应该是ok的

q1 = list.where(l=>l.name.startwith("abc"));

if(q1.count>=20) reutrn;

else

{

   return list.where(l=>l.name.contains("abc"))

}

chenping2008 | 园豆:9836 (大侠五级) | 2012-12-07 10:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册