怎样对已有的DataSet 进行多条件筛选,得到符合的结果?

Angel_Elizabeth 2005-07-28 09:20:58
我已有一个DataSet,是查询到的结果集。
我希望能够对其中的三个字段条件进行筛选,求到符合的结果集。
大家帮我想想啊,多谢啦!
...全文
508 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
qiushuangqun 2005-07-28
  • 打赏
  • 举报
回复
ds.Tables[0].Rows[i]
NewBo 2005-07-28
  • 打赏
  • 举报
回复
DataRow[] dr = ds.Tables[0].Select("Codition");
condition其实就是SQL语句中WHERE后面的字句,例如 CName ='aaa'
qpl007 2005-07-28
  • 打赏
  • 举报
回复
可惜的是,不可以在select()里面使用 like ,唯一的不方便的地方。
------------------------------------------------------

可以啊。
参考MSDN:
ms-help://MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfsystemdatadatacolumnclassexpressiontopic.htm
=====================================================
在 LIKE 比较中,* 和 % 两者可以互换地作为通配符。如果 LIKE 子句中的字符串包含 * 或 %,那么这些字符应用中括号([])对其进行转义。如果子句中有中括号,那么中括号字符应用中括号对其进行转义(例如 [[] 或 []])。在模式的开头和结尾,或者在模式的结尾,或在模式的开头允许使用通配符。例如:

"ItemName LIKE '*product*'"
"ItemName LIKE '*product'"
"ItemName LIKE 'product*'"
在字符串的中间不允许使用通配符。例如,不允许 'te*xt'。
=====================================================


gqchen1981 2005-07-28
  • 打赏
  • 举报
回复
up
Angel_Elizabeth 2005-07-28
  • 打赏
  • 举报
回复
可惜的是,不可以在select()里面使用 like ,唯一的不方便的地方。
spz1755 2005-07-28
  • 打赏
  • 举报
回复
请问一下哦! ds.Tables[0].Select(aaa='22');
里面可以用并列筛选吗? 比如 aaa='222' bbb='333' 中间是用 and 连接吗?
--------------------------------------------------------------------------
是的,但要加上引号:ds.Tables[0].Select("aaa='22'");
yuanqin810616 2005-07-28
  • 打赏
  • 举报
回复
如果你要講篩選後的dataset棒定給datalist就這樣:
MyList.DataSource = oDs.Tables[0].DefaultView;
qpl007 2005-07-28
  • 打赏
  • 举报
回复
请问一下哦! ds.Tables[0].Select(aaa='22');
里面可以用并列筛选吗? 比如 aaa='222' bbb='333' 中间是用 and 连接吗?
----------------------------------------------

是的!
yuanqin810616 2005-07-28
  • 打赏
  • 举报
回复
ds.Tables[0].DefaultView.RowFilter = "aaa=222 and bbb=333 and ccc=444";
Angel_Elizabeth 2005-07-28
  • 打赏
  • 举报
回复

请问一下哦! ds.Tables[0].Select(aaa='22');
里面可以用并列筛选吗? 比如 aaa='222' bbb='333' 中间是用 and 连接吗?
yuanqin810616 2005-07-28
  • 打赏
  • 举报
回复
oDs.Tables[0].DefaultView.RowFilter =
lyb_abiandbel 2005-07-28
  • 打赏
  • 举报
回复
bflovesnow() 说的是啊!
mathsword 2005-07-28
  • 打赏
  • 举报
回复
上边的两种方法都是可以的,我觉得用dataview的方便一点
qpl007 2005-07-28
  • 打赏
  • 举报
回复
dv.RowFilter 属性可以赋多个条件吗?好像不行吧?
----------------------------------
当然可以。

参考MSDN:
ms-help://MS.MSDNQTR.2003FEB.2052/cpref/html/frlrfsystemdatadatacolumnclassexpressiontopic.htm
zhengjob 2005-07-28
  • 打赏
  • 举报
回复
同一楼的
ufrshchenw 2005-07-28
  • 打赏
  • 举报
回复
ds.Tables[0].Select()//select有两参数自己设好了
bflovesnow 2005-07-28
  • 打赏
  • 举报
回复
DataSet 是一个'数据库',它没有真正的数据,数据存在'表' DataTable 中。

1.你可以使用 DataRowCollection 对象,即 DataTable.Select() 的返回结果

2.可以使用 DataView,即 DataTable.Default.RowFilter = "" ... 这样的.
Angel_Elizabeth 2005-07-28
  • 打赏
  • 举报
回复
dv.RowFilter 属性可以赋多个条件吗?好像不行吧?
qpl007 2005-07-28
  • 打赏
  • 举报
回复
DataView a = new DataView(DataSet.Tables[0]);

a.RowFilter = "id=0 and type <> 2 and ss like %ddd%";

然后就直接用 DataView 里的数据就ok了(DataView 里的数据就是根据条件筛选出来的结果)
boyxia 2005-07-28
  • 打赏
  • 举报
回复
DataRow[] dr = ds.Tables[0].Select("aaa like '%test%'");

110,549

社区成员

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

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

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