仅保存如果进行了更改

幸运卢克82

我在表单上有一个“保存”按钮,用于将数据保存到DB,并且我想创建一个简短的代码来“不保存任何内容”。如果用户不进行更改,因为保存涉及很多Textbox / Combobox / DateTimePicker值。

换句话说,有什么我可以使用的解决方案,而不是像这样:

 Using con As OracleConnection = New OracleConnection("Data Source=MyDB;User Id=Lucky;Password=MyPassword;")

            con.Open()

            Using cmd As OracleCommand = New OracleCommand()

    Const SQL As String = "INSERT INTO MYTable (Field1,Field2,Field3 etc.) VALUES(: example1, : example2,: example3, etc.)"

                cmd.Connection = con
                cmd.Parameters.Add(New OracleParameter(": example1",Textbox1.Text ))
                cmd.Parameters.Add(New OracleParameter(": example2",Textbox2.Text ))
                cmd.Parameters.Add(New OracleParameter(": example3",Textbox3.Text ))

                cmd.CommandText = SQL

                If Textbox1.text="" And Textbox2.text="" And Textbox3.text="" Then
                'Do nothing
                Else
                cmd.ExecuteNonQuery()
                MessageBox.Show("Saved successfully")
                End if

            End Using

 End Using

目前,即使文本框为空,我的代码也保存到DB中-因此可能插入了空字符串。

路加

首先,您可以简单地编写代码

If Textbox1.text="" And Textbox2.text="" And Textbox3.text="" Then
  'Do nothing
  Else
  cmd.ExecuteNonQuery()
  MessageBox.Show("Saved successfully")
End if

If Not (Textbox1.text="" And Textbox2.text="" And Textbox3.text="") Then 
      cmd.ExecuteNonQuery()
      MessageBox.Show("Saved successfully")
End if

要不然

If Textbox1.text="" And Textbox2.text="" And Textbox3.text="" Then Exit Sub
cmd.ExecuteNonQuery()
MessageBox.Show("Saved successfully")

解决其余问题的一种可能方法是事件+标志。给每个控件一个侦听器(Textchanged,ValueChanged,..取决于控件)。如果触发,则将标志Changes made从默认设置FalseTrue

最后检查是否Changes madeTrue-如果是,则将其保存到DB。

否定的:如果用户放置了一些文本,然后将其删除,则标记仍然为true-但是您可以在许多应用程序中看到此行为。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

jQuery-如果对textarea进行了更改,则无法提交表单

boto3版本,如果对文件进行了更改,则附加

cs50的可读性。在“如果”行无故进行了有价值的更改

jQuery检测更改输入,其中JS进行了更改

DBD / DBI:如果对程序进行了分叉,则会崩溃

如果进行了任何更改,如何在离开Angular 4页面时提示用户?

如果我在在线GitHub编辑器上进行了更改,如何从分支中获取?

检测哪些脚本对DOM进行了更改

检查ConcurrentHashMap的computeIfAbsent是否进行了更改

derbyJS-实时了解谁进行了更改

如何知道jtextarea中是否进行了任何更改?

检查Git是否以编程方式进行了更改

如何检查rsync是否对bash进行了任何更改?

keyboardWillShow事件进行了其他更改

找出谁对Powershell进行了文件的最后更改?

数据集对新行进行了更改

Bash评估在版本4.4中进行了更改?

notifydataset在片段内部使用listview进行了更改

在集群环境中,如果对items.xml进行了更改,是否足以在一个节点中执行“更新正在运行的系统”并仅清除对其他节点的缓存?

如何以以下方式重构以下代码:如果我在display_home_page方法中进行了更改,则无需在process方法中进行更改

如果对单选按钮进行了特定更改,则下拉列表的值更改为null,而不仅仅是任何更改

如果对具体类进行了更改,那么对接口而不是具体类的依赖会减少Java中的编译时间吗?

RealmSwift错误:“ RLMException,原因:对集合进行枚举时对其进行了更改。”

对cakephp视图文件进行了更改,但更改未在浏览器中显示

我对Dockerfile进行了更改,但是我的“ docker build”没有反映出更改

如果对appSettings条目进行了参数化,Web.config的预期内容是什么?

如果在Kotlin中对其进行了修改,则无法删除可变集中的元素

是否无法确定函数是否是生成器函数(如果已对.bind()进行了调用)?

汇编:如果push命令已经进行了减法,为什么还要减去esp?