C# dataset内如何根据条件判断数据量 20
代码如下:stringstr="select*fromUsers";stringtbName="users";databasedb=newdatabase();DataS...
代码如下:
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个窗体都非父子窗体。 展开
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个窗体都非父子窗体。 展开
2个回答
展开全部
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();
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里面显示全部的行,然后计算一共多少行,男的多少行,女的多少行,麻烦您再帮我看下,谢谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询