Autor Beitrag
didi_12
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Do 07.06.12 16:14 
Hallo

ich versuche einen neuen Record in meiner Datenbanktabelle anzulegen. Ich habe über den Datenbank-Assistenten in VS eine entsprechende Anbindung an die Datenbank hergestellt und die Tabellenspalten mit Controls auf meinem WPF-Form verknüpft. Das Updaten existierender Records funktioniert problemlos, aber wie schaffe ich es einen neuen Record zu erzeugen und entsprechend zu befüllen.

Hier die entsprechenden typisierten Datenbank-Objekte

ausblenden C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
oPostkriegDataSet = ((Postkrieg2.DataSet_Postkrieg2_Direct_To_SQLDatabase)(this.FindResource("dataSet_Postkrieg2_Direct_To_SQLDatabase")));
// Lädt Daten in Tabelle "Cover_Main_Table". Sie können diesen Code nach Bedarf ändern.
oPostkriegDataSetAdapter = new Postkrieg2.DataSet_Postkrieg2_Direct_To_SQLDatabaseTableAdapters.Cover_Main_TableTableAdapter();
oCover_Main_Table_View = ((System.Windows.Data.CollectionViewSource)(this.FindResource("cover_Main_TableViewSource")));
oPostkriegDataSetAdapter.Fill(oPostkriegDataSet.Cover_Main_Table);
oCover_Main_Table_Row = oPostkriegDataSet.Cover_Main_Table.NewCover_Main_TableRow();

//oPostkriegDataSet.Cover_Main_Table.AddCover_Main_TableRow(oCover_Main_Table_Row);
//oPostkriegDataSet.Cover_Main_Table.Rows.Add(oCover_Main_Table_Row);
//oCover_Main_Table_View.View.Refresh();
oCover_Main_Table_View.View.MoveCurrentToLast();
MessageBox.Show(oCover_Main_Table_View.View.CurrentPosition.ToString());
//oCover_Main_Table_Row.SetAdded();


Wenn ich dann mit

ausblenden C#-Quelltext
1:
oPostkriegDataSetAdapter.Update(oPostkriegDataSet.Cover_Main_Table)					


durch die Kontrollen die neue typisiert Row updaten will dann passiert gar nichts. Also kein Eintrag erfolgt. Wie also erzeuge ich eine neue Row ultimativ in der Datenbanktabelle und schaffe es diese auch zu befüllen ?

Danke
didi_12

Moderiert von user profile iconTh69: Color durch C#-Tags ersetzt
didi_12 Threadstarter
Hält's aus hier
Beiträge: 8



BeitragVerfasst: Sa 09.06.12 18:58 
Hallo,

hat einer eine Idee. Unabhängig vom konkreten Fall, wie lege ich eine neue Row in der Datenbanktabelle an und fülle diese ?

Danke
didi
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4708
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Sa 09.06.12 19:55 
Sprechender Code ist eigentlich lobenswert. Geschwätzige Bezeichner kombiniert mit Underscores sind aber zu viel des guten und machen das fast unlesbar.

Sieht für mich so aus als hättest du die neue Zeile nicht in der DataTable hinzugefügt. Zumindest ist der entscheidende Teil im gezeigten Code auskommentiert. Die AddCover_Main_TableRow Methode brauchst du auf jeden Fall. Danach sollte oCover_Main_Table_Row nach dem Update auch in der Datenbank auftauchen, wenn dein TableAdapter denn ein gültiges Insert Statement enthält. Hast du die erzeugten Commands im TableAdapter mal kontrolliert?