2016-08-05 6 views
0

Ich verwende VB.Net und MySQL für meine Datenbank, ich habe 4 Textboxen mit einer anderen bedingten Anweisung und 1 Schaltfläche für Add/insert zu Datenbank. Dies ist der Name meiner TextBoxen für group1 ist TextBox_A und TextBox_B, für group2 ist es TextBox_C und TextBox_D. Wenn ich auf Senden/Einfüge-Schaltfläche, erste Bedingung für group1 ist es richtig und erfolgreich zur Datenbank hinzugefügt, aber mein Problem ist, wenn ich diese 2 TextBoxes, unter group2 und wieder, wenn ich auf Add/insert Schaltfläche, dann Schaltfläche einfrieren und es hatte nicht erlaubt es zu übermitteln, und ich weiß nicht, was das Problem ist, und natürlich verwende ich open.Connection und Close.Connection bei jeder Bedingung.So verhindern Sie Button erstarren nach dem ersten Senden

Durch die Möglichkeit, dies ist mein Code:

Private Sub cmbInsert_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbInsert.Click 
    If TextBox_A.Text <> "" And TextBox_B <> "" And TextBox_C.Text ="" And TextBox_D = "" Then 

     objconn = New MySqlConnection 
     objconn.ConnectionString = "server=xxx; username=xxx; password=xxx; database=xxxx" 
     objconn.Open() 
      With objcmd 
       .Connection = objconn 
       .CommandText = "insert query here" 
       .ExecuteNonQuery() 
      End With 
     objconn.Close() 
     MsgBox("Data Added!", MsgBoxStyle.Information + MsgBoxStyle.OkOnly, "SUCCESS") 

    ElseIf TextBox_C.Text <> "" And TextBox_D <> "" And TextBox_A.Text ="" And TextBox_B = "" Then 

     objconn = New MySqlConnection 
     objconn.ConnectionString = "server=xxx; username=xxx; password=xxx; database=xxxx" 
     objconn.Open() 
      With objcmd 
       .Connection = objconn 
       .CommandText = "insert query here" 
       .ExecuteNonQuery() 
      End With 
     objconn.Close() 
     MsgBox("Data Added!", MsgBoxStyle.Information + MsgBoxStyle.OkOnly, "SUCCESS") 

    End If 
End Sub 
+0

Es gibt einige Probleme mit der Formulierung, die Ihre Frage ein wenig unklar zu machen. Aber bist du sicher, dass der Knopf friert? Ist es möglich, dass es einfach nichts macht? Haben Sie versucht, den Code in Visual Studio zu durchlaufen? – sstan

+0

Übrigens ist es nicht friert sorry, Und jetzt versuche ich wieder zu laufen, aber das Hauptproblem ist, es ist nicht erlaubt, unter einer anderen Bedingung zu bevölkern. Weil das, was ich heute gemacht habe, es auch akzeptiert, Datensätze in 'group1' oder' TextBox_A' und 'TextBox_B' Boxen einzufügen. eher – Rhamnold

+0

Und es ist möglich, dass bei der zweiten Bedingung es einfach nichts tut. – Rhamnold

Antwort

0

Ein paar Dinge. Erstens berücksichtigen Ihre Bedingungen nicht, dass alle vier Textfelder Text enthalten könnten, und wenn sie ähnliche Dinge tun, sollten Sie darüber nachdenken, diese in wiederverwendbare Methoden zu zerlegen.

EDIT: Könnte Weise einfacher als die :) Nur .Text hinzufügen

Private Sub cmbInsert_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbInsert.Click 
    If TextBox_A.Text <> "" And TextBox_B.Text <> "" And TextBox_C.Text ="" And TextBox_D.Text = "" Then 

     objconn = New MySqlConnection 
     objconn.ConnectionString = "server=xxx; username=xxx; password=xxx; database=xxxx" 
     objconn.Open() 
      With objcmd 
       .Connection = objconn 
       .CommandText = "insert query here" 
       .ExecuteNonQuery() 
      End With 
     objconn.Close() 
     MsgBox("Data Added!", MsgBoxStyle.Information + MsgBoxStyle.OkOnly, "SUCCESS") 

    ElseIf TextBox_C.Text <> "" And TextBox_D.Text <> "" And TextBox_A.Text ="" And TextBox_B.Text = "" Then 

     objconn = New MySqlConnection 
     objconn.ConnectionString = "server=xxx; username=xxx; password=xxx; database=xxxx" 
     objconn.Open() 
      With objcmd 
       .Connection = objconn 
       .CommandText = "insert query here" 
       .ExecuteNonQuery() 
      End With 
     objconn.Close() 
     MsgBox("Data Added!", MsgBoxStyle.Information + MsgBoxStyle.OkOnly, "SUCCESS") 

    End If 
End Sub 
+0

Was meinst du? und ja, das sind paar Textfelder. – Rhamnold

+0

Option 1: A ja ja B C keine D keine // Option 2: A kein B kein C ja ja D . Sie haben nichts, was behandelt, was Sie tun, wo alle 4 Textfelder Text enthalten (alle 4 = ja). – DorkyMork

+0

Was meinen anderen Punkt angeht, machen beide "if" -Anweisungen dasselbe. Mach das zu einer Methode. Wenn sich die Abfrage basierend auf den Textfeldern ändert, übergeben Sie die Abfrage als Zeichenfolge an die neue Methode. – DorkyMork