C# dataset内如何根据条件判断数据量

代码如下:
string str = "select * from Users";
string tbName = "users";
database db = new database();
DataSet ds = new DataSet();
ds = db.getlist(str,tbName); //这个方法肯定没有问题,就是将数据从数据库写入到DataSet中

//以上是写入dataset了
数据库为access的,Users表的字段: id 自动;name 文本;sex 文本;

通过ds.Tables[tbName].Rows.Count.ToString(); //我可以成功的获得共有多少行数据
问题如下:
按照以上的结构已经成功的写入了DataSet中,也获得了所有的数据量(行数),但如何根据性别的条件判断个数呢?
如:查询Dataset中所有性别为男的个数,所有性别为女的个数。
哦,我明白了,根据marclee44的回答,是将tables整个结构改变了,我的datagridview里面显示出来的就变成设置的这个条件下的内容了。

我是想在datagridview中将全部的USERS表里面的内容都显示出来,不改变DATASET中的TABLE的任何结构,只是要取出条件是男的行数,以及条件是女的行数,请问应该如何做呢?谢谢

又做了试验:就算用你的方法,得出的结果的数量也是全部tables中的行数。按照你的方法只是做了条件的排除,但是总数count没有改变。

自己搞定了,原来DataSet本身有一个Compute方法用作统计,
object UserMale = ds.Tables[tableName].Compute("count(id)","sex = '男'");
这个UserMale就直接是统计出来的数量了,然后可以用Convert.Tostring等等转换。

另外有个问题,form1 form2 form3,请问form3如何刷新form1中,form1中有刷新方法,要具体的代码,谢谢。3个窗体都非父子窗体。

int 男数量=0;
int 女数量=0;
for (int 行=0;行<datagridview.rows.count;行++)
{
if( datagridview.rows[行].cells[性别列].value.tostring ()=="男" )
{ 男数量+=1}
else
{ 女数量+=1}
}
没调试手写的,你试试吧
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-04-04
string strFilter = "sex =‘男‘";
ds.Tables[tbName].DefaultView.RowFilter = strFilter;
ds.Tables[tbName].Rows.Count.ToString();
strFilter = "sex =‘女‘";
ds.Tables[tbName].DefaultView.RowFilter = strFilter;
ds.Tables[tbName].Rows.Count.ToString();追问

this.indexDataGridView1.DataSource = ds.Tables[tableName];
加入您的代码:
string strFilter = "sex =‘男'";
ds.Tables[tableName].DefaultView.RowFilter = strFilter;
ds.Tables[tableName].Rows.Count.ToString();
然后datagridview里面的数据就空了,我是要先在datagridview里面显示全部的行,然后计算一共多少行,男的多少行,女的多少行,麻烦您再帮我看下,谢谢

C# winform设计时使用的“Dataset”如何返回其中包括的数据数量,是用什...
var ds=new DataSet();var count=ds.Tables.Count;如果你所指的是所以得DataTable里的DataRow的数量的话,就需要循环查询了 var count=0;foreach(var dataTable in ds.Tables){ count+=dataTable.Rows.Count;}

c#中如何实现按条件精确以及模糊查询数据库中的数据
你可以参考一下这个方法的判断逻辑 当然具体问题还要具体设计分析 \/\/\/ \/\/\/ 根据条件查询煤炭供求列表 \/\/\/ \/\/\/ \/\/\/ \/\/\/ \/\/\/ \/\/\/ \/\/\/ <returns><\/returns> public DataSet GetSupplyByType(string SendPlace, string Su_DelFlag, string Su_Qneta, string Su_Vdaf, string Su_...

c#中dataset 数据查询问题
int index = 下拉框SelectedIndex;\/\/下拉框选中省份的索引,如果你不能保证这个索引与表中该省份所在的行的索引相同的话,就请你自己再加点判断 DataRow[] rows = 省份表.Rows[index].GetChildRows("关系名");\/\/根据下拉框的索引找出dataset中省份那一行,再根据那一行的主键获得城市表中的关联城市 D...

C# 语法问题
if(ds == null || ds.Tables.Count <=0 || ds.Tables[0].Rows.Count <= 0) 这句话是指如果DataSet为空或者DataSet里不存在表或者数据集有表但没有任何数据的话,就执行返回。否则就执行下面的foreach语句。foreach(DataRow row in ds.Tables[0].Rows)这句话有两个C#语法一个foreach一个...

C#WinForm程序,报表数据源是建的一个dataset,根据用户输入条件来更改...
根据用户输入条件来更改满足条件的数据源?你说的是不是就是填报或者表单?我这里用的FineReport报表软件,它的填报或表单就是通过参数条件筛选数据,然后修改数据,回填进数据库,提交后数据源的数据就会改变。楼主可以看一下你那个是否也是如此,当然也可以试用下FineReport,有问题还可以去“FineReport爱好者...

C# dataset中的两个table间如何实现A表的条件不满足B表实现A表的某字段...
} \/\/方法二 当然如果是数据集用Linq 也可以 比较麻烦 \/\/方法三 用HashSet集合 这个性能比较高 用Select 数据量超过1000就会卡 DataSet a = new DataSet(); DataSet b = new DataSet(); HashSet<string> l_hash = new HashSet<string>(); foreach (DataRow l_dr in b...

c# 用dataSet填充了 中DataGridView 为什么 还是没有数据,只有表头,但是...
有表头没数据,表示数据库操作都是正确,sql语句正确。但是sql语句没查到东西。。。但是你又说用这些语句在数据库中能查到,那么语句假如是正确,即应该能查到数据,但是你没有数据,反过来说明sql语句的条件不正确,即where语句有问题。。。建议把那个sql语句拼出来,好好看看是不是和你在数据库里写的...

怎么将C#的bool值存到SQL的bit中
你添加的DataSet文件,我姑且叫做DataSet1,存储过程返回的结果集我称为Table1,在配置TableAdapter的过程中,有一个地方要你写2个方法名(一个Fill,一个Get),这两个方法作用一样,根据个人习惯,保留一个即可,我习惯保留Get,我们称它为 GetDataMethod.你只需要定义一个方法,返回值为DataSet1.Table1类型.传入...

c# 使用SqlDataAdapter的Fill方法填充DataSet
应该是下面这样判断:if(dataset.Tables.Count==0)\/\/表示dataset中没有表 if(dataset.Tables.Count==1&&dataset.Tables[0].Rows.Count==0)\/\/表示dataset中 有一个表,但这个表中没有数据 DataView表示用于排序、筛选、搜索、编辑和导航的 DataTable 的可绑定数据的自定义视图。DataTable表示内存中数据...

c#问题:用visual studio.net 2003,大概有哪些类可用?
封装ODBC .NET Framework 数据提供程序。.NET Framework 数据提供程序描述用于在托管空间中访问数据源(如数据库)的类的集合。通过使用 OdbcDataAdapter 类,可以填充驻留在内存中的 DataSet,使用它可以查询和更新数据源。 有关如何使用此命名空间的其他信息,请参见 OdbcDataReader、OdbcCommand 和 OdbcConnection 类。

相似回答