Laden...

Weitere SqlExceptions, obwohl kein Fehler mehr auftreten dürfte

Erstellt von serial vor 15 Jahren Letzter Beitrag vor 15 Jahren 724 Views
S
serial Themenstarter:in
902 Beiträge seit 2007
vor 15 Jahren
Weitere SqlExceptions, obwohl kein Fehler mehr auftreten dürfte

Hallo,

ich wusste nicht genau wie ich die problematik ausdrücken sollte.

Hier gleich mal der code


 foreach (DataRow row in archivDatas.Rows)
            {
                try
                {        
                    archiv.ImportRow(row);
                    archivAdapter.Update(archiv);
                }
                catch (SqlException ex)
                {
                    continue;
                }
            }

mein ziel ist es einer vorhandenen tabelle neue rows hinzuzufügen.
Einige der neuen rows sind allerdings schon vorhanden (identifikation durch eine unique_id welche eine eindeutigkeitseinschränkung hat).

So, soll nun eine row hinzugefügt werden, welche den selben uniquekey wie eine schon vorhandene hat, kommt eine SqlException....das ist so beabsichtigt.
Diese row möchte ich dann einfach nicht hinzufügen und mit der nächsten weitermachen.
Allerdings kommt nun bei jeder folgenen row auch diese exception, obwohl die uniquekeys nicht gleich sind.

Wie könnte ich dieses problem am besten lösen? (Wahrscheinlich sehe ich nur den baum vor lauter bäumen nicht)...

mfg
serial

B
293 Beiträge seit 2008
vor 15 Jahren

Doofe Frage, aber hast du's schonmal ohne continue; probiert?
Also so:

foreach (DataRow row in archivDatas.Rows)
            {
                try
                {
                    archiv.ImportRow(row);
                    archivAdapter.Update(archiv);
                }
                catch (SqlException ex)
                {
                    
                }
            }

Wenn ich nicht hier bin, findest du mich auf code-bude.net.

S
serial Themenstarter:in
902 Beiträge seit 2007
vor 15 Jahren

ja, selbes ergebnis!

Möglicherweise wird eine art status in der archiv DataTable gesetzt?

mfg
serial

S
serial Themenstarter:in
902 Beiträge seit 2007
vor 15 Jahren

ich glaube ich habe das problem behoben!

Einfach bei dem Adapter


archivAdapter.ContinueUpdateOnError = true;

mfg
serial

1.200 Beiträge seit 2007
vor 15 Jahren

Man updated den DataAdapter nicht in jeder Iteration!

Das macht man einmal am Ende.

foreach (DataRow row in archivDatas.Rows)
            {
                    archiv.ImportRow(row);
            }

archivAdapter.ContinueUpdateOnError = true;
archivAdapter.Update(archiv);

Shift to the left, shift to the right!
Pop up, push down, byte, byte, byte!

YARRRRRR!

S
serial Themenstarter:in
902 Beiträge seit 2007
vor 15 Jahren

Hallo GMLOD

das ist mir klar, ich war mir bei der vorgehensweise nicht sicher, ob er alle rows updated, auch wenn mittendrin eben diese uniquekey-einschränkung gebrochen wird (er also einzelne rows nicht hinzufügt)...

mfg
serial