Bindingsource und AddNew mit typisiertem DataSet

09/02/2009 - 17:17 von Michael Moll | Report spam
Hallo an die Experten,

ich habe ein typisiertes Dataset. Davon habe ich von einer Tabelle ein paar
Felder auf ein Formular gezogen. Dadurch wurde der entsprechende
Binding-Navigator und die Binding-Source erzeugt.
Somit kann ich mich durch alle entsprechenden Daten bewegen. Das Problem
entsteht, wenn ich einen neuen Datensatz anlegen will. Hierzu rufe ich
BindingSource.Addnew() auf. Wenn ich das tue, so wird ein neuer Datensatz
angelegt.
Nun muss ich in diesem Datensatz einige Felder programmtechnisch vorbelegen.
Wo bzw. Wie mache ich das am besten?
Ich habe bereits versucht, das folgende auszuführen:

this.arbeitswerteBindingSource.AddNew();
DataRowView drv = arbeitswerteBindingSource.Current as
DataRowView;
drv.Row["GUID"] = Guid.NewGuid();
drv.Row["Rep_Nummer"] = nRepNummer;
drv.Row["Position"] = nNextPosition;
drv.Row["KVA"] = bKVA;

Das bringt auch keine Fehler, aber die entsprechenden Daten werden nicht
übernommen. Ist das überhaupt der richtige Weg?


Mfg


Micha
 

Lesen sie die antworten

#1 Peter Fleischer
09/02/2009 - 20:05 | Warnen spam
"Michael Moll" schrieb im Newsbeitrag
news:

ich habe ein typisiertes Dataset. Davon habe ich von einer Tabelle ein
paar Felder auf ein Formular gezogen. Dadurch wurde der entsprechende
Binding-Navigator und die Binding-Source erzeugt.
Somit kann ich mich durch alle entsprechenden Daten bewegen. Das Problem
entsteht, wenn ich einen neuen Datensatz anlegen will. Hierzu rufe ich
BindingSource.Addnew() auf. Wenn ich das tue, so wird ein neuer Datensatz
angelegt.
Nun muss ich in diesem Datensatz einige Felder programmtechnisch
vorbelegen. Wo bzw. Wie mache ich das am besten?
Ich habe bereits versucht, das folgende auszuführen:

this.arbeitswerteBindingSource.AddNew();
DataRowView drv = arbeitswerteBindingSource.Current as
DataRowView;
drv.Row["GUID"] = Guid.NewGuid();
drv.Row["Rep_Nummer"] = nRepNummer;
drv.Row["Position"] = nNextPosition;
drv.Row["KVA"] = bKVA;

Das bringt auch keine Fehler, aber die entsprechenden Daten werden nicht
übernommen. Ist das überhaupt der richtige Weg?



Hi Michael,
ein gangbarer Weg kann so aussehen:

ds.arbeitswerteRow r =
(ds.arbeitswerteRow)((DataRowView)this.arbeitswerteBindingSource.AddNew()).Row;
r.GUID = Guid.NewGuid();
r.Rep_Nummer = nRepNummer;
r.Position = nNextPosition;
r.KVA = bKVA;
this.ds.arbeitswerte.AddarbeitswerteRow(r);

Viele Grüsse
Peter

Ähnliche fragen