先学学SQL的基本语句吧,group by
解决方案 »
- 工具条中的textbox以快捷方式获得焦点后,焦点移动的问题
- GraphicsPath ,怎么把里面的各个图形坐标取出来,然后再更改里面的坐标
- 我快成吴新宇了,还是解决不了,问题太难,还是想法有问题,愚翁在的话打个招呼吧,(实在无语,在csdn发贴有2天了)
- Session的问题,Asp.net板块没人回答我,期待这里的高手!!!
- 请问:只能输入1...9的数字的正侧表达式怎么写?
- (急)asp.net 一個不能顯示界面的問題(新建一個應用程序時)
- C#窗体操作问题
- gridview checkbox 分页 删除,不要DataGrid的例子。
- 高分求vs.net 2002 第4张光盘
- 大神们,急救
- 匿名方法和lambda表达式,算是静态方法还是成员方法呢?
- (C#)此行已从表中移除并且没有任何数据
SqlConnection ConnAcc = new SqlConnection(strConn);
ConnAcc.Open();
string strSQL = "SELECT COUNT (Group_name) FROM table_4 Group By Group_name";
SqlCommand cmd = new SqlCommand(strSQL, ConnAcc);
int intNum = (int)cmd.ExecuteScalar();
ConnAcc.Close();请问:这样的程序可以实现计数功能吗?并把结果给intNum?可是我执行时发现intNum的数据是0x00000000,一直都是这样,这是怎么回事呢?
dt=db.getDt(strSQL);
db.close();
if(dt.Rows.Count>0)
{
for(int i=0;i<dt.Rows.Count;i++)
{
String sql2="select GK from table_4 where group_name='"+dt.Rows[i]["group_name"].ToString+"'";
dt2=db.getDt(sql2);
db.close();
if(dt2.Rows.Count>8)
{
// 你想干嘛
}
}
基本思路就这样好久没写了
}
我没看你上面的代码,直接看了你下面的疑问,你首先把你的sql语句也就是SELECT COUNT (Group_name) FROM table_4 Group By Group_name丢数据库执行下,看是不是出来结果先,再来分析你的代码
dt是指DataTable啊,你可以自己命名自己的,dt2就是第2个datable了,db就是你打开进行数据库访问的连接,getDt是指你获得数据的事物,比如如下,,sqlconnection myConnection=new sqlconnection(""); //你的连接字符串
protect void tongji(object sender, EventArgs e)
{
string strSQL = "SELECT distinct(Group_name) FROM table_4 ";
Datable dt=new Datable();
myConnection.open();
dt=myConnection.getDt(strSQL,);
myConnection.close();
if(dt.Rows.Count>0)
{
for(int i=0;i<dt.Rows.Count;i++)
{
String sql2="select GK from table_4 where group_name='"+dt.Rows[i]["group_name"].ToString()+"'";
Datable dt2=new Datable();
myConnection.open();
dt2=myConnection.getDt(sql2);
myConnection.close();
if(dt2.Rows.Count>8)
{
// 你想干嘛
}
if(dt2.Rows.Count<8)
{
// 你想干嘛
}
}
public DataTable getDT(string sql)
{
SqlDataAdapter mySqlDataAdapter=new SqlDataAdapter(sql,myConnection);
DataTable myDataTable=new DataTable();
mySqlDataAdapter.Fill(myDataTable);
return myDataTable;
}大概就这样吧,你自己灵活用下
这样还是错的呀,同样的错误呀,对了,15楼的方法是可以实现分类统计是吗?就是分别计算出Group_name为1的有过少个,Group_name为2的有多少个。是吗?然后把他们与8来比较对吧?
这样这句“dt=myConnection.getDT(strSQL);”会提示错误 “System.Data.SqlClient.SqlConnection”不包含“getDT”的定义,并且找不到可接受类型为“System.Data.SqlClient.SqlConnection”的第一个参数的扩展方法“getDT”(是否缺少 using 指令或程序集引用?) 这是为什么?怎么改错呢?
还有就是“ dt.Rows[n]["Group_name"].ToString()+ "'";”这句提示错误:只有 assignment、call、increment、decrement 和 new 对象表达式可用作语句,这又该怎么改呢?
SqlConnection ConnAcc = new SqlConnection(strConn);
ConnAcc.Open();
string strSQL = "SELECT COUNT (Group_name) FROM table_4 Group By Group_name";
SqlDataAdapter sd = new SqlDataAdapter(strSQL, ConnAcc);
DataSet ds = new DataSet();
sd.Fill(ds);
DataTable dt = ds.Tables[0];
for(int i=0;i<dt.Rows.Count;i++)
{
int a= (int) dt.Rows[i][0].ToString();
if(a>8)
{
//
}
if(a<8)
{
//
}
}
ConnAcc.Close();
刚刚吃完饭,顺手帮你上面改了下,我没有调试,你试下有错的话断点后,把错误信息贴上来
我晕,你这点调试都不会噢,Convert.ToInt32(dt.Rows[n][0].ToString());
1 你首先要理解ExecuteScalar()这个方法的意义的返回值是什么。。
2 我觉得你的这个不能用到这个方法,返回一个数据集最好吧。。
请问:这样的方法是可以实现分类统计是吗?就是分别计算出Group_name为1的有过少个,Group_name为2的有多少个。是吗?然后把他们与8来比较对吧?(因为现在没在实验室,不能和加扰机连接测试,不知道能不能实现这个功能。。)
请问:这样的方法是可以实现分类统计是吗?就是分别计算出Group_name为1的有过少个,Group_name为2的有多少个。是吗?然后把他们与8来比较对吧?(因为现在没在实验室,不能和加扰机连接测试,不知道能不能实现这个功能。。)
应该可以,我没调试,等你去调试出问题再来探讨,或者私我
group by 了嘛,分组了,估计就只有9组,你看看是不是,你也不用去实验室,自己电脑上装个vs就可以自己搞了