Parallelitätsverletzung unter Visual Studio 2008

02/04/2008 - 22:44 von Gutelade | Report spam
Hallo zusammen,
ich bin ein C#-Neuling, wage mich aber gleich mal an ein komplizierteres
Beispiel. Ich habe zwei abhàngige Tabellen, die ich über folgendes
Codefragment in ein Dataset fülle:
this.com = new SqlCeCommand(Form1.initAdr, this.conn);
this.da = new SqlCeDataAdapter(this.com);
this.sqlCb = new SqlCeCommandBuilder(this.da);
this.ds = new DataSet();
this.da.Fill(this.ds, "Kunden");
this.comVer = new SqlCeCommand(Form1.initVer, this.conn);
this.daVer = new SqlCeDataAdapter(this.comVer);
this.sqlCbVer = new SqlCeCommandBuilder(this.daVer);
this.daVer.Fill(this.ds, "Vertraege");
this.conn.Close();
this.bs.DataSource = this.ds;
this.bs.DataMember = "Kunden";
DataRelation kdVRelation = new DataRelation("KundenVertraege",

this.ds.Tables["Kunden"].Columns["KD_LFD_NR"],

this.ds.Tables["Vertraege"].Columns["AN_LFD_NR"], false);
this.ds.Relations.Add(kdVRelation);
this.bsV.DataSource = this.bs;
this.bsV.DataMember = "KundenVertraege";
this.dataGridKunden.DataSource = this.bs;
this.dataGridVertraege.DataSource = this.bsV;

Nun habe ich eine Funktion "Neu", die mir einen neuen Datensatz in die
Kundentabelle schreiben soll:

this.bs.AddNew();
this.bs.EndEdit();
this.da.Update(this.ds, "Kunden");

Das klappt auch soweit, der CommandBuilder merkt die Änderung und fügt einen
neuen datensatz ein, den ich in meinem DataGridView sehen und in den an die
BindingSource gebundenen Textfelder bearbeiten kann. Nach dem Editieren der
Textfelder und dem nachtràglichen Speichern in der Form:

this.bs.EndEdit();
try
{
this.Cursor = Cursors.WaitCursor;
this.da.Update(this.ds, "Kunden");..

kommt ein fehler "Parallelitàtsverletzung hoch. So, als ob es keine
vollstàndige Synchronisation datenbank<->Datagridview gegeben hat.

Kann mir jemand helfen? Ist die Verwendung des CommandBuilders hier
vielleicht nicht ok?

Vielen Dank
 

Lesen sie die antworten

#1 Frank Dzaebel
02/04/2008 - 23:56 | Warnen spam
Hallo Gutelade,

wir benutzen hier gern den vollen Vor- und Zunamen
als Usernamen.

ich bin ein C#-Neuling, wage mich aber gleich mal an ein komplizierteres
Beispiel. Ich habe zwei abhàngige Tabellen, die ich über folgendes
Codefragment in ein Dataset fülle:



Du hast zwei CommandBuilder. Du benötigst
nur einen. Oder noch besser gar keinen, denn
Du kannst das ganze auch ggf. über das
Datenquellenfenster in die Form ziehen.

[Master/Detail mit DataSet-Designer]
http://dzaebel.net/MasterDetail.htm


der CommandBuilder merkt die Änderung ...



das macht jemand anderes ;-)
Der CommandBuilder erzeugt ggf. das Update,
Delete- und InsertCommand:
http://groups.google.com/group/micr...313f66e2a6
http://groups.google.com/group/micr...dee75b47e9


ciao Frank
Dipl.Inf. Frank Dzaebel [MCP/MVP C#]
http://Dzaebel.NET

Ähnliche fragen