romperstomper Geschrieben 11. März 2005 Teilen Geschrieben 11. März 2005 Hallo, würde wohl gerne wissen, wie man in C# Textfelder in eine SQL Datenbank einfügt? Also ich habe ein Formular auf dem 3 Eingabefelder stehen und diese sollen in die Datenbank Tabelle gespeichert werden. Wie kann ich dieses machen? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Manfred.Becker Geschrieben 11. März 2005 Teilen Geschrieben 11. März 2005 Hi, um Daten in ein Datenbanktabelle zu schreiben muss eine INSERT-Anweisung abgesetzt werden. So ähnlich könnte das aussehen: private void InsertStatement() { string Connectionstring = "Server=localhost; DataBase=myDatabase; Integrated Security=SSPI" ; SqlConnection cnSQL; SqlCommand cmSQL; SqlDataReader drSQL; String strSQL; try { // Build Insert statement strSQL = "INSERT mytable VALUES (" + txtField1.Text + "," + txtField2.Text + "," + txtField3.Text + ")"; cnSQL = new SqlConnection(Connectionstring); cnSQL.Open(); cmSQL = new SqlCommand(strSQL, cnSQL); cmSQL.ExecuteNonQuery(); // Close and Clean up objects drSQL.Close(); cnSQL.Close(); cmSQL.Dispose(); cnSQL.Dispose(); } catch(SqlException Exp) { MessageBox.Show(Exp.Message, "SQL Error"); } catch(Exception Exp) { MessageBox.Show(Exp.Message, "General Error"); } } [/PHP] myDatabase und myTable sind natürlich nur Beispielwerte! Ganz ähnlich geht's für die SQL-Anweisungen UPDATE, INSERT, DELETE usw. Ich denke, da kommst du jetzt selbst dahinter. PS: Der Quellcode wurde von mir stark abgeändert. Das Orginal stammt von: Microsoft 101 Visual Basic and C# Code Samples Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
romperstomper Geschrieben 14. März 2005 Autor Teilen Geschrieben 14. März 2005 Hallo, also erstmal danke,aber kann da nicht wirklich viel mit anfangen, weil bin eben Anfänger :confused: Also mal meine Ausgangspunkt. Ich habe einen SQL Adapter "sqlDataZeit" eine SqlConnection "sqlConnection1" einen DataSet = "dsZeit1" Also die Verbindung ist aufgebaut und im DataGrid Fenster sehe ich auch die Tabelle die aus "ID,Name,Firma,Zeitaufwand" besteht! So jetzt möchte ich einfach in die Spalte "Name" zum beispiel "Testname" reinschreiben,was vorher in einem Textfeld eingegeben wurde(txtTest = Field). Wie sieht da genau der Insert Befehl aus? Vieleicht ein kleines Beispiel nochmal parat? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
arrayhunter Geschrieben 14. März 2005 Teilen Geschrieben 14. März 2005 hallo, Anfänger hin, Anfänger her... um ein wenig Grundlagen wird mann nicht herumkommen http://de.gotdotnet.com/quickstart/winforms/doc/DataAccessPlaceHolder.aspx sollte nach der NET-Installation auch auf deinem Rechner vorhanden sein zum Problem: insert into tabelle(spalte1,spalte2) values ('Inhalttxt1','Inhalttxt2') allerdings sollte man mit Parametern arbeiten. hier noch ein beispiel mit DataReader http://support.microsoft.com/kb/306636/DE/ Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Manfred.Becker Geschrieben 14. März 2005 Teilen Geschrieben 14. März 2005 Hi, da du bereits eine gültige SqlConnection hast, brauchst du nur noch die Insert-Anweisung als SqlCommand abzusetzen: SqlCommand cmSQL; String strSQL; String ID="4711"; String Name=txtTest.Text; String Firma="Firma YX"; String Zeitaufwand="0"; try { // Build Insert statement strSQL = "INSERT INTO [B]ZEIT[/B] (ID,Name,Firma,Zeitaufwand) VALUES (" + ID + "," + Name + "," + Firma + "," + Zeitaufwand + ")"; cmSQL = new SqlCommand(strSQL, sqlConnection1); cmSQL.ExecuteNonQuery(); // Close and Clean up objects cmSQL.Dispose(); } catch(SqlException Exp) { MessageBox.Show(Exp.Message, "SQL Error"); } catch(Exception Exp) { MessageBox.Show(Exp.Message, "General Error"); } [/PHP] Achtung bei dem Beispiel gehe ich davon aus, dass deine Tabelle ZEIT heist! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
romperstomper Geschrieben 14. März 2005 Autor Teilen Geschrieben 14. März 2005 private void button3_Click(object sender, System.EventArgs e) { string Connectionstring = "workstation id=VECTRA;packet size=4096;DataBase = TABTEST;integrated security=SSPI;data source=VECTR" + "A;persist security info=False;initial catalog=KeineAhnung"; SqlConnection cnSQL; SqlCommand cmSQL; SqlDataReader drSQL; String strSQL; String NAMETXT = txtName.Text; String VORNAMETXT = txtNachname.Text; try { // Build Insert statement strSQL = "INSERT INTO TABTEST (Name,Nachname) VALUES (" + NAMETXT + "," + VORNAMETXT + ")"; cnSQL = new SqlConnection(Connectionstring); cmSQL = new SqlCommand(strSQL, cnSQL); cnSQL.Open(); sqlCommand1.ExecuteNonQuery(); // Close and Clean up objects cnSQL.Close(); cmSQL.Dispose(); } catch(SqlException Exp) { MessageBox.Show(Exp.Message, "SQL Error"); } catch(Exception Exp) { MessageBox.Show(Exp.Message, "General Error"); } Bekomme dann den FehlerCode SQL Closed!!!! Habe die Tabelle jetzt nur mit Name und Nachname! Heißt TABTEST! Komm nicht weiter. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Manfred.Becker Geschrieben 14. März 2005 Teilen Geschrieben 14. März 2005 Einen Programmierer (egal ob Anfänger oder Profi) zeichet aus, wie er mit Fehlermeldungen umzugehen weis. Bekomme dann den FehlerCode SQL Closed!!!! Das deutet doch ziemlich genau darauf hin, dass auf eine geschlossene Datenbank zugegriffen wurde, oder nicht? Wenn du deinen Quelltext genau anschaust wirst du feststellen, dass der Fehler kommen musste, da du versuchst eine SQL-Anweisung abzusetzen bevor die Datenbank geöffnet hast! cnSQL = new SqlConnection(Connectionstring); cmSQL = new SqlCommand(strSQL, cnSQL); cnSQL.Open(); Dreh das ganze mal herum: cnSQL = new SqlConnection(Connectionstring); cnSQL.Open(); cmSQL = new SqlCommand(strSQL, cnSQL); Übrigens hatte ich das bereits im ersten Posting so angegeben. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.