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个窗体都非父子窗体。
展开
 我来答
wisecn
2012-04-04 · 超过34用户采纳过TA的回答
知道答主
回答量:117
采纳率:0%
帮助的人:79.8万
展开全部
int 男数量=0;
int 女数量=0;
for (int 行=0;行<datagridview.rows.count;行++)
{
if( datagridview.rows[行].cells[性别列].value.tostring ()=="男" )
{ 男数量+=1}
else
{ 女数量+=1}
}
没调试手写的,你试试吧
marclee44
2012-04-04 · 超过15用户采纳过TA的回答
知道答主
回答量:44
采纳率:0%
帮助的人:43.8万
展开全部
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里面显示全部的行,然后计算一共多少行,男的多少行,女的多少行,麻烦您再帮我看下,谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式