日期:2014-05-18  浏览次数:20482 次

如何对dataset做一下过滤操作?
我查询出来的有一列datacode
会有:
20060205
2006-5-6
2006/5/6
这样的数据,我想在绑定之前在dataset里面把日期大于某个日期的数值去掉,请问怎么写阿?

------解决方案--------------------
查询的时候在命令里处理啊
填充DATASET之前
------解决方案--------------------
用DataTable的Select
------解决方案--------------------
DataView dataView = new DataView( 你DataSet里的表(如:dataset.Table[0]) );
dataView .RowFilter = String.Format( 过滤条件 (如: "datediff(d,datacode,getdate()) "));
GridView1.DataSource = dataView ;
GridView1.DataBind( );

没测试,只可参考!!
------解决方案--------------------
根据你的情况决定是否使用String.Format()方法
------解决方案--------------------
有一个概念你要澄清,你要进行过滤的是DataTable,而并非DataSet
dt是原DataTable
where是查询字符串
order是排序字符串

DataRow[] drs=dt.Select(where,order);
DataTable dt2=dt.Copy();
dt2.Rows.Clear();
foreach(DataRow row in drs)
{
DataRow row2=dt2.NewRow();
for(int i=0;i <row2.Table.Columns.Count;i++)
row2[i]=row[i];
dt2.Rows.Add(row2);
}
return dt2;
------解决方案--------------------
用DataView .RowFilter( "条件 ");
------解决方案--------------------
DataTable dt = dSet.Table[0]; //dSet你的数据集
string myDate = "2006-08-11 ";
DataRow[] dRows = dt.Select( " datacode < "+myDate);
DataTable dtNew = dt.Copy();
foreach(DataRow dr in dRows)
{
dtNew.Rows.Add(dr);
}
dSet = new DataSet();
dSet.Table.Add(dtNew);

//数据绑定.dSet
------解决方案--------------------
dataview就行,上面有例子
------解决方案--------------------
查询之前就过滤掉不好么?
------解决方案--------------------
为啥不在查询 之前过滤呀

------解决方案--------------------
先在datatable里面把日期格式转换成标准格式
例如2006/5/6用split拆分,用0填充,然后组成20060506
然后用上面的filter过滤就好
------解决方案--------------------
使用dataView 的过滤功能
------解决方案--------------------
DataView rowfilter
DataView dv = DataSet.Tables[0].DefaultView