Laden...

DB Parameter in SQL Query einfügen

Erstellt von Micha72 vor 4 Jahren Letzter Beitrag vor 4 Jahren 916 Views
M
Micha72 Themenstarter:in
1 Beiträge seit 2019
vor 4 Jahren
DB Parameter in SQL Query einfügen

SQL 2012
Visual Studio 2012 für Desktop

Hallo zusammen,

ich bin seit ein paar Tagen für mich dabei, zu programmieren. Bin wahrscheinlich untalentiert und ein totaler Anfänger

Ich möchte gerne über Textfelder Daten in die Datenbank eingeben.
Wenn ich Statische Werte eintrage , funktioniert die Eingabe.
Bei Eingabe über Textfeldern nicht

Als Grundlage für mein Arbeiten / lernen dient das Buch ( Visual c# 2012, Andreas Kühnel). Nebenbei der Link "Galileo-OpenBook Kap. 26.3 Parametrisierte Abfragen"

Mein Text



private void CMD_Write_Click(object sender, EventArgs e)
{
string str_vorname = var_eingabe_01.Text;
string str_Nachname = var_eingabe_02.Text;
string int_Altern = var_eingabe_03.Text;
string str_Beruf = var_eingabe_04.Text;

//Verbindung erstellen für SQL DB
SqlConnection write_db = new SqlConnection("Data Source = XX ; Database = Personal ; Trusted_Connection = true ");


string str_sql = "insert into dbo.Vor_nachname (Vorname , Nachname , Altern , Beruf) Values (@Vorname , @Nachname,@Altern, @Beruf)";

// den Container mit dem Insert Befehl an die Verbindung binden
try
{
write_db.Open();
SqlCommand insert_db = new SqlCommand(str_sql, write_db);

insert_db.ExecuteNonQuery();
// Einfügen der Daten 

insert_db.Parameters.AddWithValue("@Vorname", str_vorname);
insert_db.Parameters.AddWithValue("@Nachname", str_Nachname);
insert_db.Parameters.AddWithValue("@Altern", int_Altern);
insert_db.Parameters.AddWithValue("@Beruf", str_Beruf);



}

catch (Exception ex)
{
Console.WriteLine("Fehlermeldung ; {0}", ex.Message);
}

write_db.Close();


}

Vielen Dank für eure Hilfe

16.841 Beiträge seit 2008
vor 4 Jahren

Hallo.

Und was ist deine Frage? Was ist die Exception? Wir können nicht hellsehen 😃
"Geht nicht" ist nämlich keine akzeptable Fehlermeldung, mit der wir irgendwas anfangen können.
[Hinweis] Wie poste ich richtig? Punkt 5 😃

Ansonsten einfach mal selbst nen bisschen Debuggen und schauen, ob der Code das macht, was er machen soll.
[Artikel] Debugger: Wie verwende ich den von Visual Studio?

Was auf keinen Fall sinn macht ist, dass Du den Command absendest bevor Du die Parameter angibst.
Siehe korrekte Implementierung hier:
[Artikelserie] SQL: Parameter von Befehlen
(Man beachte auch die korrekte Verwendung der usings())

PS: In C# programmiert man nicht mit Typpräfixen.
[Artikel] C#: Richtlinien für die Namensvergabe

463 Beiträge seit 2009
vor 4 Jahren
  
  
// den Container mit dem Insert Befehl an die Verbindung binden  
try  
{  
write_db.Open();  
SqlCommand insert_db = new SqlCommand(str_sql, write_db);  
  
insert_db.ExecuteNonQuery();  
// Einfügen der Daten   
  
insert_db.Parameters.AddWithValue("@Vorname", str_vorname);  
insert_db.Parameters.AddWithValue("@Nachname", str_Nachname);  
insert_db.Parameters.AddWithValue("@Altern", int_Altern);  
insert_db.Parameters.AddWithValue("@Beruf", str_Beruf);  
}  
  

Ohne jetzt auf den Rest zu achten - die Parameter müssen vor dem ExecuteNonQuery() Befehl gesetzt werden.