DataGridView中例值的问题(VB.net)

liubococoa 2010-02-03 05:01:35
下面的代码表示:当前行的“含税单价”单元格的值 = 当前行的“不含税单价”单元格的值*1.17
DataGridView1.Rows(e.RowIndex).Cells("含税单价").Value =DataGridView1.Rows(e.RowIndex).Cells("不含税单价").Value * 1.17


因为现在的一个表中,所有的“不含税单价”已经提前输入好了,所以想知道如何改代码能变成下面的样子:
每个“含税单价”单元格的值 = 相对应的每个“不含税单价”单元格的值*1.17
(也就是所有的“含税单价”值自动生成为相对应“不含税单价”的值*1.17)


因为要在DataGridView的每次数据重新加载时用到上一代码,所以还想问一下DataGridView的数据重新加载用什么事件表示?
...全文
126 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
liubococoa 2010-02-04
  • 打赏
  • 举报
回复
又在几个不同的场合中试了一个,真的可以用!!!

哈哈哈哈……
解决了!成功了!高兴的像花儿一样!
我自认为我的菜鸟等级有了质的飞跃,已经从吃大白菜的鸟,蜕变成吃卷心菜的鸟了!!!

既然如此高兴,我宣布一个重要决定:
本贴前20名跟贴的老大,每人1分,爽啊爽啊……
20名以后的老大们多多包涵,如果坛子里头让给0.01分就好了。我把这点儿分数,散它个2000人,让大家都乐呵乐呵。

(由于楼主如此卖力的高兴,导致腹中饥饿,现在吃饭去了,凑足人数再来慷慨散分!!!)
grandon 2010-02-04
  • 打赏
  • 举报
回复
good,思路很正确!自己解决的感觉很还吧,楼主!呵呵
liubococoa 2010-02-04
  • 打赏
  • 举报
回复
有点乱,重新排一遍,我的插入原代码不知为什么,不能用。


'用RowsAdded方法,DataGridView1的每次数据重新加载,都执行
Private Sub DataGridView1_RowsAdded(ByVal sender……
'数组i赋值,直到总行数
For i As Integer = 0 To DataGridView1.RowCount - 1
'遍历所有行的Cells(6),也就是第7个单元格,即“不含税单价”,赋值给r
Dim r As int32 = DataGridView1.Rows(i).Cells(6).Value
'声明一个s,并赋值
Dim s As Int32 = r * 1.17
'把s的值赋给“含税单价”例的所有对应的单元格,“含税单价”为第3个单元格,即Cells(2)
DataGridView1.Rows(i).Cells(2).Value = s
Next
End Sub
liubococoa 2010-02-04
  • 打赏
  • 举报
回复
写好了!!!

*****************************************************************************
Private Sub DataGridView1_RowsAdded(ByVal sender…… '用RowsAdded方法,DataGridView1的每次数据重新加载,都执行
For i As Integer = 0 To DataGridView1.RowCount - 1 '数组i赋值,直到总行数
Dim r As int32 = DataGridView1.Rows(i).Cells(6).Value '遍历所有行的Cells(6),也就是第7个单元格,即“不含税单价”,赋值给r
Dim s As Int32 = r * 1.17 '声明一个s,并赋值
DataGridView1.Rows(i).Cells(2).Value = s '把s的值赋给“含税单价”例的所有对应的单元格,“含税单价”为第3个单元格,即Cells(2)
Next
End Sub
*****************************************************************************
liubococoa 2010-02-04
  • 打赏
  • 举报
回复
各位老大:

这次发贴,是要讨论一种方法,不通过datatable、dataset等等来解决这一问题。
而是只凭“行、列坐标”相互赋值的方式来解决。


同时提醒:
"含税单价"这一列是数据源表中没有的,是我在DataGridView控件中后加的一列。
数据源是一个单表,没有计算、不是存储过程。


我好像已经摸索出一点门道了,过一会儿发出来。
cobra009 2010-02-04
  • 打赏
  • 举报
回复
建议datagridview不要直接绑定数据源,把查到的内容放到datatable或者dataset,然后建个datacolumn,设置该列的数据为datatable中“不含税单价”列数据*0.17,然后把这一列插到查出数据的datatable或者dataset中,再把这个datatable绑到datagridview
liubococoa 2010-02-04
  • 打赏
  • 举报
回复
一说要结贴散分,谁都不来了。
各位老大真是高风尚啊。

不会是嫌分少吧?
虽然分确实是很少,哈哈哈……
appleller 2010-02-03
  • 打赏
  • 举报
回复
是要处理查询数据还是录入数据

查询数据可以直接写SQL语句添加一列就可以了
录入数据可以用DataGridView的事件,关键看你需要什么时候计算并显示出此值
liubococoa 2010-02-03
  • 打赏
  • 举报
回复
自已顶一顶
liubococoa 2010-02-03
  • 打赏
  • 举报
回复
一个很重要的事忘记说了:

************************************************************************

"含税单价"这一列是数据源表中没有的,是我在DataGridView控件中后加的一列。

所以各位说的几个方法,是可以解决"含税单价"列在数据源的表里的这种情况的,但我的这个问题不是。
抱歉,抱歉!!!
liubococoa 2010-02-03
  • 打赏
  • 举报
回复
环境:VB.net 2008
我是先通过“添加新数据源”的方式,添加了一个表成为数据源的。
然后把这个表的数据源用鼠标拖到了窗体上。呵呵,偷懒的方法。

所以数据源是一个表。

我知道把数据源变成存储过程,是可以解决这个问题的。
但我已经在窗体上和DataGridView控件上定义和操作了很多东西了,真的不想再重新做一遍了。

我总是感觉用类似下面这样的一种语句也是能做到的:
DataGridView1.Rows(e.RowIndex).Cells("含税单价").Value =DataGridView1.Rows(e.RowIndex).Cells("不含税单价").Value * 1.17




reeves101 2010-02-03
  • 打赏
  • 举报
回复
请问数据源是什么?
我是小小码农 2010-02-03
  • 打赏
  • 举报
回复
如果是datatable ,可以加一列,然后绑定
cobra009 2010-02-03
  • 打赏
  • 举报
回复
不知道你把数据放入datagridview时是用datatable?dataset?还是逐行写入的

16,552

社区成员

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

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