当前位置:编程学习 > C#/ASP.NET >>

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#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,