C# dataGridView查询显示问题

lidong571240396 2011-08-16 03:46:28
数据库中有两张表:(部门表)表A (人员表)表B
(部门表)表A字段:ClassId ClassName
(人员表)表B字段:PId PName ClassId(外键,关联表A的主键)
DataGridView显示表A所有字段数据,还有一列自定义列,如何让该列显示:表B的ClassId = 表A的ClassId数据条数,也就是说显示对应部门中有多少人员.

显示两列数据,DataGridView数据源绑定代码如下:
private DataSet dataSet = new DataSet(); //声明并初始化DataSet
private SqlDataAdapter dataAdapter; //声明DataAdapter
string sql = "SELECT ClassId,ClassName FROM 表A";//查询所有数据
dataAdapter = new SqlDataAdapter(sql, DBHelper.connection);
dataAdapter.Fill(dataSet,"表A");
dgvDept.DataSource = dataSet.Tables["表A"];

还有一自定义列"人员数量"该如何查询、绑定DataGridView数据源、显示出来呢?请高手指教!!!感谢!
...全文
423 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
lidong571240396 2011-08-16
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 lidong571240396 的回复:]
引用 6 楼 ldk 的回复:
引用 3 楼 lidong571240396 的回复:

引用 2 楼 ldk 的回复:
select 部门表.classid,classname,(select count(*) from 人员表 where 人员表.classid = 部门表.classid)

sql语句这样写的话,DataGridView那列该怎么绑定呢?我是用DataPrope……
[/Quote]
可以再帮我解决解决么?谢谢了
lidong571240396 2011-08-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ldk 的回复:]
引用 3 楼 lidong571240396 的回复:

引用 2 楼 ldk 的回复:
select 部门表.classid,classname,(select count(*) from 人员表 where 人员表.classid = 部门表.classid)

sql语句这样写的话,DataGridView那列该怎么绑定呢?我是用DataPropertyName = 数据库字段名称……
[/Quote]
你的这个办法可以显示,并且计算了!!!但是我程序里的这句话(int)dgvDept.SelectedRows[0].Cells[1].Value就开始报错了,这句话是获得被选中行第一列中的数据的,换回以前显示一个表中的数据的sql语句这句话就不报错
hui_play 2011-08-16
  • 打赏
  • 举报
回复
起的别名
lidong571240396 2011-08-16
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 hui_play 的回复:]
SQL code
select A.*,C.num from A ,(select classid, count(*) num from B group by classid)C where A.classid=C.classid

这个对
[/Quote]
C是什么呢?只有A表和B表啊
hui_play 2011-08-16
  • 打赏
  • 举报
回复
select A.*,C.num from A ,(select classid, count(*) num from B  group by classid)C where A.classid=C.classid

这个对
hui_play 2011-08-16
  • 打赏
  • 举报
回复
select A.*,C.c from A ,(select classid, count(*) num from B  group by classid)C where A.classid=C.classid

已经经过测试
ldk 2011-08-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lidong571240396 的回复:]

引用 2 楼 ldk 的回复:
select 部门表.classid,classname,(select count(*) from 人员表 where 人员表.classid = 部门表.classid)

sql语句这样写的话,DataGridView那列该怎么绑定呢?我是用DataPropertyName = 数据库字段名称绑定的
[/Quote]


select 部门表.classid,classname,(select count(*) from 人员表 where 人员表.classid = 部门表.classid) as num

绑定num这个字段
hui_play 2011-08-16
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 lidong571240396 的回复:]
引用 2 楼 ldk 的回复:
select 部门表.classid,classname,(select count(*) from 人员表 where 人员表.classid = 部门表.classid)

sql语句这样写的话,DataGridView那列该怎么绑定呢?我是用DataPropertyName = 数据库字段名称绑定的
[/Quote]

你DataGridView绑定的是datatable里的字段,不是数据库里面的实际字段。你在datatable里添加就完了
lidong571240396 2011-08-16
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 lmaohuanl 的回复:]
datatable dt1 = new datatable();
ds.tables.add(dt1);
DataRow dr = dt1.newrow();
dr.ItemArray = ds.Tables[0].Rows[i].ItemArray;
dt1.Rows.Add(dr);
datagridtable.datasources = ds.table[1];

把……
[/Quote]
请问你这里面的ds代表的什么呢?不好意思!请多指教
lidong571240396 2011-08-16
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 ldk 的回复:]
select 部门表.classid,classname,(select count(*) from 人员表 where 人员表.classid = 部门表.classid)
[/Quote]
sql语句这样写的话,DataGridView那列该怎么绑定呢?我是用DataPropertyName = 数据库字段名称绑定的
ldk 2011-08-16
  • 打赏
  • 举报
回复
select 部门表.classid,classname,(select count(*) from 人员表 where 人员表.classid = 部门表.classid)
LMAOhuaNL 2011-08-16
  • 打赏
  • 举报
回复
datatable dt1 = new datatable();
ds.tables.add(dt1);
DataRow dr = dt1.newrow();
dr.ItemArray = ds.Tables[0].Rows[i].ItemArray;
dt1.Rows.Add(dr);
datagridtable.datasources = ds.table[1];

把dt中的某行数据插如到dt1中,然后绑定datagridview

dataGridView2.DataSource = ds.Tables[0]Rows[0][0];显示表中列

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧