2010-12-19 9 views
0

Was ich erreichen möchte, ist die Eingabe von Daten in MySQL-Datenbank automatisch von meinem ersten Formular.C# MySQL-Datenbank bezogen

Momentan kann ich nur Daten in die Datenbank eingeben, wenn ich auf dieses Formular klicke. Wie speichere ich alle meine Daten automatisch im ersten Formular, ohne dass ich auf jedes Formular klicke, um die Daten zu speichern? Kann jemand helfen?

Vielen Dank im Voraus.

 RegistryKey rk = Registry.CurrentUser; 
     rk = rk.OpenSubKey("Software\\Microsoft\\Internet Explorer\\TypedURLs", false); 
     PrintKeys(rk); 
     rk.Close(); 

     void PrintKeys(RegistryKey rk) 
     { 
     if (rk == null) 
     { 
      richTextBoxBrowsing.Text = "Browsing history is empty!" + "\n"; 
      return; 
     } 

     richTextBoxBrowsing.AppendText("Subkeys of " + rk.Name + "\n"); 

     try 
     { 
      string[] valnames = rk.GetValueNames(); 

      foreach (string s in valnames) 
      { 
       //int i = richTextBoxBrowsing.SelectionStart; 
       string val = (string)rk.GetValue(s); 
       richTextBoxBrowsing.AppendText("-----------------------------------------------" + "\n"); 
       richTextBoxBrowsing.AppendText(s + "\n"); 
       richTextBoxBrowsing.AppendText(val + "\n"); 

       //create a MySQL connection with a query string 
       MySqlConnection myConn = new MySqlConnection("user id=root; password=qwerty123456; database=syscrawl; server=localhost"); 

       //open the connection 
       myConn.Open(); 

       MySqlCommand myCommand = myConn.CreateCommand(); 

       myCommand.CommandText = 
       "insert into browsing_history (unique_id, url)" 
       + " values " 
       + "('" + s + "', '" + val + "')"; 

       MySqlDataReader myResult = myCommand.ExecuteReader(); 

       //close the connection 
       myConn.Close(); 
      } 
     } 

     catch (Exception MyError) 
     { 
      richTextBoxBrowsing.AppendText("An error has occurred: " + MyError.Message + "\n"); 
     } 
    } 

Antwort

1

hm ... einige Kontext könnte helfen. Von dem, was Sie gesagt haben, klingt es wie der Code passiert in einem onClick sogar auf Ihrem Formular (s) passiert?

Wenn Sie möchten, dass es sofort beim Laden des Formulars ausgeführt wird, fügen Sie stattdessen den Code in das onLoad-Ereignis des Formulars ein (doppelklicken Sie auf die Formulartitelleiste, um zum onLoad-Ereignis zu gelangen).

Wenn das nicht genug ist, seien Sie bitte detaillierter/spezifisch, was Sie versuchen zu tun.

+0

Ich habe ein paar dieser Formulare, die Daten enthält. Ich möchte alle Daten automatisch in die MySQL-Datenbank einfügen, ohne auf jedes Formular klicken zu müssen. Nach dem, was Sie gesagt haben, um das onLoad-Ereignis einzufügen, bedeutet dies, dass ich Daten nur eingeben kann, wenn ich auf dieses Formular klicke. – athgap

+0

@athgap: Es könnte einfacher sein, eine Lösung bereitzustellen, wenn Sie beschrieben haben, wie Ihre Anwendung angelegt ist. Möglicherweise möchten Sie ein Objekt erstellen, dessen Anliegen es ist, Daten in Ihre Datenbank zu schreiben, und dann eine Instanz dieses Objekts in jedem Formular haben. In jedem Formular können Sie einen Zeitgeber haben, der regelmäßig die erforderliche (n) Methode (n) für dieses Objekt aufruft, um Daten in Ihre Datenbank einzufügen. –

Verwandte Themen