C# Wie krieg ich die eingetippten daten in die Datenbank?

Robymon

Cadet 4th Year
Registriert
Okt. 2014
Beiträge
76
Hey Leute,

Da bin ich wieder mit einem Problem :p

Ich hab ein kleines C# WPF Programm geschrieben die mit einer Datenbank verbunden ist.
Bis jetzt kann sie nur anzeigen was in der Datenbank steht.
CSharp_Datenbank_Anzeige.PNG

soo bis jetzt alles schön nur muss man ja auch was in die Datenbank eintragen können.
Hab dafür den Button "Neu" erstellt und der öffnet ein fenster das eben so ausschaut:

ToDB.PNG

Hab alle kleinigkeiten schon gemacht.
Der Button Cancel funktioniert, der Button Clear funktioniert, tab funktion nach richtiger Reihenfolge.
Nur der button "To DB" muss ich noch programmieren hab aber garkeine ahnung wie ich das anstelle.

Hab da mal was zusammen getippt und rausgelesen aber des stimmt einfach nicht :/

Hilfe wäre echt toll ♥
 
Kommt immer darauf an, wie du aktuell die Datenbankverbindung herstellst. Erzähl mal bisschen was. Wie kommen aktuell die Daten aus der Datenbank in deine Anwendung?
 
public partial class MainWindow : Window
{
MySqlConnection conn = new MySqlConnection("Server=172.20.104.216;userid=root;password=geheim;Database=mysqltest");

public MainWindow()
{
InitializeComponent();
}


private void btnloaddata_Click(object sender, RoutedEventArgs e)
{
try
{
conn.Open();
MySqlCommand cmd = new MySqlCommand("Select CustomerID,ContactName,Address,City,Phone,Email from customers", conn);
MySqlDataAdapter adp = new MySqlDataAdapter(cmd);
DataSet ds = new DataSet();
adp.Fill(ds, "LoadDataBinding");
dataGrid1.DataContext = ds;
}
catch (MySqlException ex)
{
MessageBox.Show(ex.ToString());
}
finally
{
conn.Close();
}
}



So hab ich es geschrieben, weiß nicht ob ihr da klar kommt weil ich es ziemlich dreckig programmiert hab >.<

Sollte ich es für kommentieren oder kommt ihr klar :D
 
Na dann hast du doch quasi schon alles was du brauchst da stehen ....

Mach in den SQLCommand deinen "INSERT INTO ...." und führ den SQLCommand mit cmd.ExecuteNonQuery() aus.

Danach ist der SQL Befehl ausgeführt.
 
Hey Robymon,

public partial class MainWindow : Window
{
MySqlConnection conn = new MySqlConnection("Server=172.20.104.216;userid=root;password=geheim;Database=mysq ltest");

Du solltest dir dringen eine bessere Struktur für dein Programm überlegen.

Die Logik und Datenbankzugriffe gehören gekapselt in eigene Klassen, nicht in den Code-Behind der GUI.

Stichworte hierzu wären MFC (Model-View-Controler) oder im C#-Kontext MVVVM (Model-View-ViewModel). Beides sind Pattern, um GUI-Programme ordentlich strukturiert zu gestalten.

Zum Datenbankzugriff: Nachdem du immer noch mit SQL-Statements arbeitest steht quasi schon alles da.

Du musst die Eingaben aus der GUI im Code abfangen ("Databinding"), daraus durch String-Verknüpfung einen gültigen SQL-Befehl basteln (Erweitern um die SQL-Befehle (Insert Into, Syntax)) und dann wie o.g. abschicken.

Nach wie vor empfehle ich dir die Verwendung eines Datenbank-Abstraktionsebene....aber das hatten wir ja schon in deinem letzten Thread.

mfg

Saphirim
 
wenn du c# & wpf verwendest, verstehe und und baue mal das MVVM Pattern ein. Außerdem für die nächsten fragen, wenn mal das CODE tag für die Formatierung.
sieht besser aus und ist einfacher zu lesen. (die antwort auf deine frage wurde ja oben schon beschrieben.)
 
Zurück
Oben