DataGridView的源有个字段是外键,怎么显示它的主键表里的相关信息?
有两表,两张表中的user_id建立了一对多关系。tb_user表:
user_id,userName
0 老胡
1 张三
2 李四
还有个tb_billDetail表:
billDetail_id,user_id,.....其他字段....
0 2 ................
1 2 ................
2 0 ................
我要把tb_billDetail表Fill到一个dataTable中,然后显示到DataGridView。
但user_ID这列需要显示姓名,而不是数字。怎么搞?
一定要在Fill之前修改DataAdapter的命令行里的select语句吗?
那样的话,我再update回去的时候,会不会有问题或者太麻烦?
还有什么好办法?? --------------------编程问答-------------------- 各位帮帮忙 --------------------编程问答-------------------- select u.user_id,u.userName,b.billDetail_id from tb_user as u,tb_billDetail as b
where u.user_id=b.user_id
你 这样做是对的,更新的时候根据user_id和billDetail_id更新 --------------------编程问答-------------------- 我一般对数据的更新不是采用的默认的DataAdapter的Updata方法,而是使用存储过程或者拼的Sql语句来操作。
--------------------编程问答-------------------- 我也是使用存储过程或者拼的Sql语句来操作。 --------------------编程问答-------------------- 学习! --------------------编程问答-------------------- 我也考虑过用存储过程,但是有一点我没明白,还请不吝赐教。
情况是这样子:
这是个库存管理系统,某个库存操作员在出库的时候,实际情况是按单来操作(每一单有多个明细),用dataAdapter来Update就比较直观。
如果用存储过程来做,那是不是就是每个明细都提交一次了呢?这样子会不会在提交多个明细的过程中,那个步骤出问题,那岂不是操作失败还要把前面提交的明细都删一遍?(存储过程能不能一次提交多个明细,然后如果出问题就回滚?)
这是一个不明白的地方。
另一个不明白的地方,
如果用access来做,不支持存储过程,那用“拼的Sql语句”来完成,是指逐个明细来提交,还是指在dataAdapter的command里面用“拼的Sql语句”? --------------------编程问答-------------------- 顶一下,大虾们,救! --------------------编程问答-------------------- 關注!期待 --------------------编程问答-------------------- 可否将USER_ID列设为COMBOXCOLUMN,然后将combox的数据源设为USER表,该列的DISPLAYMEMBER设为userName,valueMember设为userID,将displayStyle设为NOTHING,这样USERID列即可显示为username
我感觉这样的这样的方法只适用于USER表数据量较小的情况,如果数据量较大的话,这样做好像还是不太合理
--------------------编程问答-------------------- BS中的GridView有模板列,但在WinForm中好象沒有
在實際工作中我們是通過增加數據冗余來實現的 --------------------编程问答-------------------- 学习 --------------------编程问答-------------------- 同样问题..... 期待中....
补充:.NET技术 , C#