我正在开发一个用户可以修改记录的项目。所以基本上一个表单加载,大约有15个字段(文本框,组合框等)。用户可以编辑该表单上的任何或所有字段。我创建了一个函数,将原始值(在form_Load上)保存到.tag属性。然后,当用户尝试保存它时,我比较control.tag = control.text并查看值是否已更改。它识别最小的变化,并且无缝地工作。现在我尝试在SQL SErver中更新这些更改,但我不确定最好的想法是什么。我试图创建一个参数化查询来更新每个字段,但在这种情况下,我应该将每个值的.tag与.text进行比较,如果它不同,则将参数传递给UPDATE语句....这就是我的意思......
Update tbl1 Set Dept = @Dept
if dept.tag = dept.text
cmd.parameters.addwithvalue(@Dept, sqldptype.text)=txtdept.text
End if
如果这是错误的话,任何人都有任何想法吗?
除了检查值是否不同之外,还有其他方法可以做到这一点,我觉得这很乏味吗?然后,我应该只更新所有字段,只要有一些' SOME'哪些领域有变化?
试图找到一种最好的方法来执行此操作....这是我在UPDATE检查字段是否不同的函数
Private Function isDirty() As Boolean
IsDirty = False
For Each ctr As Control In grpClientInfo.Controls
If TypeOf ctr Is TextBox Then
If ctr.Tag.ToString <> ctr.Text Then
IsDirty = True
End If
ElseIf TypeOf ctr Is ComboBox Then
If ctr.Tag.ToString <> ctr.Text Then
IsDirty = True
End If
ElseIf TypeOf ctr Is MaskedTextBox Then
If ctr.Tag.ToString <> ctr.Text Then
IsDirty = True
End If
ElseIf TypeOf ctr Is RichTextBox Then
If ctr.Tag.ToString <> ctr.Text Then
IsDirty = True
End If
End If
Next
End Function
然后我检查布尔值
if isDirty() then
MsgBox "You've made changes....blah blah saving now....
CALL ThisNewUpdateFunction 'yet to be written
else
MSgboX "no changes"
End if