窗体上有很多文本框,对应着表记录的各个字段.我设计一个"保存"按钮,点一下保存将把文本框中的内容写入到各个字段中,可是有这么一个问题,比如有20个字段,对应着窗体上的20个文本框,可是每次并不是全部字段都要更新.一般只会修改其中的几个字段.可是更新代码如何写好呀?下面几种方案大家评判一下:
1.全部字段都更新,不管用户是否更改过.[优点是代码好写,可是增加了重复更新的操作,即好多字段都要被相同的值更新一次.]
2.仅更新修改过的字段.----我是想这么做,可是不知代码如何写.大家一般如何做呀?
1.全部字段都更新,不管用户是否更改过.[优点是代码好写,可是增加了重复更新的操作,即好多字段都要被相同的值更新一次.]
2.仅更新修改过的字段.----我是想这么做,可是不知代码如何写.大家一般如何做呀?
解决方案 »
- 如何让DATAGIRD中显示我想要的几列数据?
- 判断标签数组里所显示的内容
- 如何用vb实现非传统方型窗口?
- 一个发传真的问题
- 关于MSHFlexGrid控件中不能正确显示小数的问题
- 欲求'水晶报表'下载
- vb 打包问题 急 谢谢了
- 如何在Datarepoprt的报表中,加入记录号
- 有会打印对象编程的吗?printer对象怎样打印横线??怎样打印带风格的报表??
- 在DataReport里怎样控制页面的大小,比如想设它的初始大小是32k,应该怎样设置?
- 过年打麻将输钱的进来……求VB让麻将次次赢代码。。。。
- winsock问题!!! run-times error '40020' 当前操作的状态无效
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
谢谢,可是这样更新前要比较一下,这也好办.可是更新时是不是要写很多update语句呀.
如果写到一句update更新中.如何写呀?
if text1(i).text<>db.recordset.fields(i).value then
更新数据库的i列自段的值
endif
next i
if text1(i).text<>db.recordset.fields(i).value then
更新数据库的i列自段的值
endif
next
>>>>>>>>>>>>>>>>>>>>>>>>>>>>
是的,这样可以,可是这样的话,有多少个字段改了,就要发送多少个update语句.
如何在一条update语句中更新已经更新的字段呢?
update table set a1 = 32,a2=65,a3=54 where xxxxxxxxxxxxxx
关键是更新哪些字段如何能过代码确定
而不是:
update table
set a1=32
where xxxxxxxxxxxxx
update table
set a2=32
where xxxxxxxxxxxxx
update table
set a3=32
where xxxxxxxxxxxxx
因为发送多次update语句是影响性能的呀.
for i=0 to 19
if text1(i).text<>db.recordset.fields(i).value then
str=str & db.recordset.fields(i).name & "=" & text1(i).text & ","
endif
next
if str<>"" then
str="update table set " & left(str,len(str)-1) & " where xxx"
endif