关于数据库update问题

huxi2000 2010-04-16 01:10:33
有一N1DATAGRIDVIEW 绑定到N1数据库 数据库有A B C 三个字段 当改变字段A的值就自动计算字段B C的值 事实上在运行的过程中B C 也响应的改变了 但是就不能保存到数据库当中
N1TableAdapter.Update(PMDataSet.N1)
PMDataSet.N1.AcceptChanges()
在保存的过程中也没有任何报错 就是计算后的数据不能保存

对应的 N1数据库字段设置如下 A B都是长整型 C是小数,用百分比格式 精度4 数值范围3 小数位数1(如23.1%)。。

知道的告诉下 我快被这个问题逼疯了。。。。。。。。。。。。
...全文
124 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wupeng7654111 2010-04-22
  • 打赏
  • 举报
回复
把B\C的值算好,直接UPDATE到数据库表,肯定可以的
huxi2000 2010-04-21
  • 打赏
  • 举报
回复
回复5楼
当AcceptChanges()后 如果数据库再次发生改变 不又可以update了吗?
另外的问题 在另一个表中的某个字段值也是 b c计算后得出的 但是也不能把计算后的值保存到表里
但是在进行很多记录更新的时候 又有保存成功的记录 ,但不是全部 有些还是保存不成功!!!真的很想不通 一样的处理方式,就是不一样的结果。。。。。
fqw991 2010-04-21
  • 打赏
  • 举报
回复
当改变字段A的值就自动计算字段B C的值 事实上在运行的过程中B C 也响应的改变了 但是就不能保存到数据库当中


那你把B C的值存到临时变量不就行了!?
lhblxm 2010-04-20
  • 打赏
  • 举报
回复
贴代码看看
N1TableAdapter.Update(PMDataSet.N1)
PMDataSet.N1.AcceptChanges()-------这句是多余的,当前一句成功执行后,
N1已经AcceptChanges()

另外,如果N1已经AcceptChanges(),N1TableAdapter.Update(PMDataSet.N1)则不起作用
楼主是否在Update 之前有AcceptChanges的语句?
huxi2000 2010-04-20
  • 打赏
  • 举报
回复
3楼 我看过了别人的问题 好象有点不一样,他改变数据库的方法可能是直接在datagridview中改 也可能用程序直接改 前面的情况没问题 我遇到的问题是后一种 在程序里改变字段的值 datagridview中可以显示改变后的值 但是新的值无法保存到数据库里

Private Sub N1CheckDataGridView_CellValueChanged(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles N1CheckDataGridView.CellValueChanged

If N1CheckDataGridView.Columns(e.ColumnIndex).Name = "N1C投胚量" Then ''手动更改投胚量
N1CheckDataGridView("N1C差异", e.RowIndex).Value = N1CheckDataGridView("N1C胚检量", e.RowIndex).Value - N1CheckDataGridView("N1C投胚量", e.RowIndex).Value
Select Case N1CheckDataGridView("N1C单位", e.RowIndex).Value
Case "M"
N1CheckDataGridView("N1C订单加投", e.RowIndex).Value = (N1CheckDataGridView("N1C投胚量", e.RowIndex).Value - N1CheckDataGridView("N1C分色量", e.RowIndex).Value) / N1CheckDataGridView("N1C分色量", e.RowIndex).Value
Case "Y"
N1CheckDataGridView("N1C订单加投", e.RowIndex).Value = (N1CheckDataGridView("N1C投胚量", e.RowIndex).Value - N1CheckDataGridView("N1C分色量", e.RowIndex).Value * 0.9144) / N1CheckDataGridView("N1C分色量", e.RowIndex).Value * 0.9144
End Select
Exit Sub
End If
End Sub

上面的代码改变了datagridview中N1C订单加投 N1C实际加投两个字段的值 但是无法把新值通过update保存到数据库。。。。。。。。
水哥阿乐 2010-04-16
  • 打赏
  • 举报
回复
以前也回答过别人这个问题
http://topic.csdn.net/u/20090825/18/f9b9e8ff-729d-409f-b9f8-35a219e8cf6c.html
huxi2000 2010-04-16
  • 打赏
  • 举报
回复
直接UPDATE什么意思 绑定了就不可以UPDATE了吗?
appleller 2010-04-16
  • 打赏
  • 举报
回复
取消绑定,直接UPDATE

16,550

社区成员

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

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