菜鸟提问:如何在datagrid中自动实现第三列等于两列相加的和?

zhanshenzhuche 2005-11-16 10:47:11
就是一个列的数据是另外两列的和,没有必要让用户输入,想自动实现。

要用样式表吗?还是直接在DATASET中获知数据变化来实现?我觉得样式表太麻烦,而通过DATASET获知数据变化我又不太懂。

应该有这样的需求吧,我在网上找了好久没找到,嫌麻烦的高手就帮忙给个链接吧。写出来更是无限感谢!!!
...全文
401 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnwd 2005-11-20
  • 打赏
  • 举报
回复
楼主介绍一下吧
zhanshenzhuche 2005-11-16
  • 打赏
  • 举报
回复
TO 浪客,SQL我试过了,第三列不发生变化
lifengguo 2005-11-16
  • 打赏
  • 举报
回复
那么如何datagrid得到datagrid的行数与列数啊?
kimurakenshin 2005-11-16
  • 打赏
  • 举报
回复
如果你是用绑定,那为什么不在SQL中想想办法呢,做出一个第三列:
selecet A1,A2,A1+A2 AS A3 from Table
把这句SQL用数据适配器的FILL方法给DATASET,可以吗?
zhanshenzhuche 2005-11-16
  • 打赏
  • 举报
回复
我使得是dataset绑定datagrid,而且想实时实现第三列变化,如第一列或第二列发生数据变化,第三列马上发生变化
pxjhy 2005-11-16
  • 打赏
  • 举报
回复
for i = 0 to 你的数据行数 - 1
DataGrid1(i, 3) = DataGrid1(i, 1) + DataGrid1(i, 2)
endfor

3为第4列,假设为合计。
1为第2列,2为第3列,假设为需要加的两个项。
没有在程序上跑,代码可能要调,思路没有问题。
working1997 2005-11-16
  • 打赏
  • 举报
回复
你可以这样啊,在DataGrid的UpdateCommand事件中操作

当前行的第三列=当前行的第一列*当前行的第二列
aitai 2005-11-16
  • 打赏
  • 举报
回复
你可以直接在dataview dv中,把前兩列的值相加賦給第三列阿
eg:
dv.table.rows(1).item(3)= convert.toInt(dv.table.rows(1).item(1))+convert.toInt(dv.table.rows(1).item(2))
datagrid1.datasource=dv
應該可以吧
hamadou 2005-11-16
  • 打赏
  • 举报
回复
使用计算列。
zhanshenzhuche 2005-11-16
  • 打赏
  • 举报
回复
刚刚在MSDN上找到,谢谢各位参与,来者有分!!!
zhanshenzhuche 2005-11-16
  • 打赏
  • 举报
回复
计算列应该怎么实现呢?
hamadou 2005-11-16
  • 打赏
  • 举报
回复
不要使用select field1,field2,(field1+field2)as sumall from tablename
这样的操作,因为如果这样做的话,只能让你的这个结果显示出来,对于修改是不能立即反映出来的,除非你重新再填充数据。
使用计算列可以比较方便的解决这个问题,或者你可以将第一列对应的datagridcolumnstyle的textbox对象的leave事件做委托,然后在委托事件中做加和的处理,当然这个时候你首先要判断另一个列中是否存在有效的值,并且当前的输入是否是有效的。

16,553

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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