Sql & C# speichert Daten nicht ab was kann ich tun?
Guten Tag,
Ich bin Programmier Anfänger und habe ein Problem seit neuerdings habe ich mich an SQL herangetraut und auch eine Datenbank erstellt. Das Problem ist nur es speichert nicht ab sobald ich das Programm auflasse speichert es die Daten, aber wenn ich das Programm schließe und wieder öffne kann ich die Daten nicht abrufen ergo Sie sind nicht gespeichert worden. Meine Frage kann ich etwas tun damit SQL auch die Daten dauerhaft speichert und in der Datenbank hinterlegt?
Code:
Um die Daten zu speichern verwende ich diesen Code.
private void button2_Click(object sender, EventArgs e)
{
this.Validate();
this.tableBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.versicherung1DataSet);
tableTableAdapter.Update(versicherung1DataSet.Table);
}
Um die Daten in ersten Form wieder abzurufen verwende ich diesen.
this.tableTableAdapter.Update(this.versicherung1DataSet.Table);
4 Antworten
Was machst du mit den Daten deiner Anwendung? Sag bzw. zeig mir den Befehl mit dem du deine Daten in der SQL Datenbank speicherst und abrufst.
Wie befüllt du deinen tableTableAdapterManager?
Hast du sowas wie:
TableAdapterManager tbMan = new TableAdapterManager();
tbMan.usersTableAdapter = new Code.dsUsersTableAdapters.usersTableAdapter();
und dann
usersTable usrTable = tbMan.usersTableAdapter.GetData();
d.Tables.Add(usrTable);
?
sowas habe ich nicht ich habe mir aber den Code mal copy & paste und er funktioniert nicht bei mir für TableAdapterManager fehlt eine using direktive bei mir und wenn ich Sie hinzufüge funktioniert
usersTableAdapter nicht mehr quasi braucht es dann auch eine direktive die ich aber nicht hinzufügen kann. hast du einen Kontext für d ?
und bei Code brauch ich ebenfalls eine using direktive
d sollte einfach nur ein Beispiel für ein Dataset sein. Mir geht es auch nur darum, wie genau, also welchen Code du benutzt um deine Tabelle zu befüllen?
So weit ich weiß habe alles so gelassen wie es ist befühlt hab ich ihn mit nichts. Bin bei tableAdapterManager auf definition gegangen und da stand das
private Versicherung1DataSetTableAdapters.TableAdapterManager tableAdapterManager;
Ich weiß nicht ob es wirklich weiter hilft wie gesagt ich bin Programmier Anfänger also quasi noch ganz am anfang. Ich hoffe das hilft irgendwie weiter.
Wie gesagt.. ohne Code kann ich nicht nachvollziehen was du genau wie machst.. . Schau dir mal das Beispiel an..:
TableAdapterManager tbm = new TableAdapterManager();
tbm.usersTableAdapter = new Code.dsUsersTableAdapters.usersTableAdapter();
tbm.usersTableAdapter.Connection = DBConnection.Connection; //SQL Verbindung
//Erstellen von DataSet objekt
DataSet ds = new DataSet();
ds.Tables.Clear();
usersTable ut = tbm.usersTableAdapter.Fill();
ds.Tables.Add(ut);
tbm.UpdateAll(ds);
Ich habe den Code nicht getestet.. einfach mal so auf die schnelle. Funktioniert das?
Ps.: Wenn du nicht weißt welche Using Directive du brauchst, dann Google einfach danach.. da findest du dann die dazugehörige Directive die du benötigst.
private void button2_Click(object sender, EventArgs e)
{
this.Validate();
this.tableBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.versicherung1DataSet);
tableTableAdapter.Update(versicherung1DataSet.Table);
}
Jetzt weiß man aber immer noch nicht, was sich hinter "UpdateAll" verbirgt.
Wie soll die jemand ohne deinen Code zu kennen sagen woran es liegt? Zudem gibt es viele verschiedene Möglichkeiten die Datenbankanbindung in C# zu realisieten.
also so speicher ich die Daten
private void button2_Click(object sender, EventArgs e)
{
this.Validate();
this.tableBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.versicherung1DataSet);
tableTableAdapter.Update(versicherung1DataSet.Table);
}
damit rufe ich die Daten auf den ersten Form ab
this.tableTableAdapter.Update(this.versicherung1DataSet.Table);
Hallo!
Ich habe mir mal die Kommentare und anderen Anworten angesehen. Ich habe den Eindruck, du weist gar nicht, was du machst.
Versuche mal Schrittweise durchzugehen, immer wenn du eine Frage definitiv mit "ja" beantworten kannst zur nächsten gehen.
1) Hast du eine Datenbank? (Wenn nicht, gibt es sowas wie CREATE DB)
2) Kannst das Programm die Datenbank "connecten" (sich mit ihr verbinden)? (Könnte sowas wie DBConnect sein)
3) Hast du eine Tabelle in der Datenbank? (Wenn nicht, gibt es sowas wie CREATE TABLE)
4) Hat die Tabelle Spalten zum befüllen und entsprechen diese den Spalten in deinem Programm? (z.B. Datensatz im Programm hat 5 Spalten, dann muss die Tabelle auch 5 Spalten haben)
5) Entsprechen die Datentypen der Tabelle denen im Programm? (z.B. int <=> INT, String <=> VARCHAR)
6) Legst du einen Datensatz an? (mit sowas wie INSERT)
7) Speicherst du diesen Datensatz permanent? (mit sowas wie COMMIT)
8) Kannst du deinen Datensatz wieder holen? (SELECT * FROM table)
9) Jetzt kannst du weitermachen, mit UPDATE und was du alles vorhast.
Gruß
this.tableTableAdapter.Update(this.versicherung1DataSet.Table);
Dies verlangt, dass schon entsprechende Daten angelegt sind, an denen ein Update wirkt. Wo ist der Insert? Wie bindest du TableAdapter an die SQL-Instanz?
this.tableTableAdapter.Update(this.versicherung1DataSet.Table);
damit rufe ich die daten auf den ersten Form ab