问题描述
user:usernamesex张三男李四男王五女赵六女张三男张七男datasetdt;dt=dataset("select*fromuser");//dataset()方法为获取datasetresponse.writedt.table[0].row.count//此时输出=6我想筛选掉dt里性别为女的数据,请问该如何进行dt筛选呢(注意:不在dataset("select*fromuser");做筛选,这也我也会)我看到有的人写dt.Tables[0].Select("条件")。但不知道该么写,求高手帮忙谢谢!!!~~~
解决方案
解决方案二:
帮忙顶也遇见过同样问题
解决方案三:
使用DateTable的Select方法是可以的,比如:DataRow[]drs=dt1.Select("sex='女'");drs就是找到的所有数据。
解决方案四:
还有另一个方法就是使用DataTable.DefaultView来查找,比如:DataViewdv=dt.DefaultView;dv.RowFilter="sex='女'"foreach(DataRowViewrvindv){...}
解决方案五:
楼上正确
解决方案六:
hbxtlhx(平民百姓-自已动手,丰衣足食)(====================================我想返回的是dt请问如何做呢谢谢
解决方案七:
DataViewv;v=newDataView(dt.tabels[0]);v.RowFilter="sex=女"v.count.....这样的行吗
解决方案八:
如果你用的是2.0可以用totable()的方法从dataview得到datatable
解决方案九:
请问如何筛选之后返回的是datable或者是dataset别的我不知道怎么转化啊成dataset
解决方案十:
如果是1.1参考以下代码:publicstaticDataTableCreateTable(DataViewobDataView){if(null==obDataView){thrownewArgumentNullException("DataView","InvalidDataViewobjectspecified");}DataTableobNewDt=obDataView.Table.Clone();intidx=0;string[]strColNames=newstring[obNewDt.Columns.Count];foreach(DataColumncolinobNewDt.Columns){strColNames[idx++]=col.ColumnName;}IEnumeratorviewEnumerator=obDataView.GetEnumerator();while(viewEnumerator.MoveNext()){DataRowViewdrv=(DataRowView)viewEnumerator.Current;DataRowdr=obNewDt.NewRow();try{foreach(stringstrNameinstrColNames){dr[strName]=drv[strName];}}catch(Exceptionex){Trace.WriteLine(ex.Message);}obNewDt.Rows.Add(dr);}returnobNewDt;}
解决方案十一:
请问如何筛选之后返回的是datable或者是dataset别的我不知道怎么转化啊成dataset==========================首先得到dataview然后通过我上面给的两种办法将dataview转换成datatable如果要进一步得到dataset需要用ds.tables.add(datatable)得到
解决方案十二:
datatable.select()方法可以搞定
解决方案十三:
还得写源码…………DataTabledtTemp=dt.clone();foreach(DataRowdrindt.select("sex='0'")){dtTemp.insert(dr);}dtTemp.acceptchanges()
解决方案十四:
请问如何把DataTable转换成dataset或者说把dataset.tables[0]=DataTable
解决方案十五:
DataViewdv=dt.DefaultView;dv.RowFilter="sex='女'"DataTablenewDt=dv.ToTable();
解决方案:
请问如何把DataTable转换成dataset或者说把dataset.tables[0]=DataTable===========================我晕说了你不看我上面写着那再给你写写DataSetds=newDataSet();ds.tables.add(datablename);这样你的datatable就成了ds.table[0]了
解决方案:
DataViewdv=dt.DefaultView;dv.RowFilter="sex='女'"DataTablenewDt=dv.ToTable();-----------------------------这对了不过继续问一下怎么把这个newdt转换成dataset呢谢谢
解决方案:
DataSetds=newDataSet();ds.Tables.Add(newdt);
解决方案:
只有JFJF了
解决方案:
hbxtlhx(平民百姓-自已动手,丰衣足食)()信誉:112-------------------来J你的分了!
解决方案:
使用DateTable的Select方法是可以的,比如:DataRow[]rows=dt1.Select("sex=N'女'");//返回的是DataRow集合drs就是找到的所有数据。如果要绑定到DataGrid等数据控件,还必须把DataRow转换一下DataTabledt=newDataTable();dt.Columns.Add(newDataColumn("username",typeof(string)));dt.Columns.Add(newDataColumn("sex",typeof(string)));foreach(DataRowrowinrows){DataRowtherow=dt.NewRow();therow.ItemArray=newobject[]{row["username"].ToString(),row["sex"].ToString()};dt.Rows.Add(therow);}returndt;
解决方案:
支持正确的
解决方案:
dataset的slect();dataview的rowfilter都可以实现
解决方案:
学习
解决方案:
该回复被版主删除
解决方案:
学习了,mark
解决方案:
dt.Tables[0].DefaultView.RowFilter="sex='女'";取的时候取dt.Tables[0].DefaultView的值即为过滤后的如上例dt.Tables[0].DefaultView.Count为4了要绑定也要取加DefaultView后的值
解决方案:
恩,代码很多,搜藏之
解决方案:
你为什么一定要弄成DataSet呢,DefaultView不好嘛?当数据量很多的时候DataSet占用的内存是很多的,为何不返回一个查询后的视图DefaultView呢?.........
解决方案:
用列过滤!!dv.RowFilter="sex='女'"
解决方案:
dataSet就是一有表的集合...比如da就是dataSetda.talbe[0].代表里面的第一张表,你也可以取相应的名字过滤完了将表的数据再放进去!!!
解决方案:
privatevoidGetRowsByFilter(){DataTabletable=DataSet1.Tables["Orders"];//PresumingtheDataTablehasacolumnnamedDate.stringexpression;expression="Date>'1/1/00'";DataRow[]foundRows;//UsetheSelectmethodtofindallrowsmatchingthefilter.foundRows=table.Select(expression);//Printcolumn0ofeachreturnedrow.for(inti=0;i<foundRows.Length;i++){Console.WriteLine(foundRows[i][0]);}}