SqlCommandBuilder nimmt falschen eindeutig Index

04/07/2009 - 22:38 von Lutz Elßner | Report spam
Mir ist bewusst, dass der CommandBuilder nicht in jedem Fall zu gebrauchen ist.
Bis auf den folgenden kleinen Fehler hat er mir aber bisher gereicht.

1. Eine SQL Tabelle hat einen eindeutig Index aus mehreren Spalten und keinen Primàrschlüssel.

2. Die Index Spalten sind im SelectCommandText enthalten.

Der CommandBuilder kann Insert und Update Commands erzeugen.

3. Die SQL Tabelle bekommt einen Primàrschlüssel.

4. Das SelectCommand bleibt unveràndert. Es enthàlt den Primàrschlüssel nicht.

Der CommandBuilder kann keine Insert und Update Commands mehr erzeugen,
weil nun zwei eindeutige Indizes zur Verfügung stehen und bei der Abfrage des
Schemas wahrscheinlich der falsche erraten wird, der nicht im SelectCommand ist.


Also der .NET Code funktioniert plötzlich nicht mehr, ohne dass er geàndert wurde.
Es wurde nur in der SQL Tabelle ein eindeutiger Index hinzu gefügt.

Den Primàrschlüssel ins SelectCommand aufnehmen geht nicht, aus bestimmten Gründen.

Die SQL Tabelle kann ich nicht manipulieren, damit es (wieder) funktioniert.

Kann ich im .NET Code (SqlCommandBuilder) irgendwie angeben, was als
eindeutiger Schlüssel verwendet werden soll, um die Commands automatisch zu generieren?

Lutz
 

Lesen sie die antworten

#1 Peter Götz
05/07/2009 - 08:10 | Warnen spam
Hallo Lutz,

Mir ist bewusst, dass der CommandBuilder nicht in
jedem Fall zu gebrauchen ist.
Bis auf den folgenden kleinen Fehler hat er mir aber
bisher gereicht.

1. Eine SQL Tabelle hat einen eindeutig Index aus mehreren
Spalten und keinen Primàrschlüssel.



Und warum definierst Du diese Spaltenkombination
nicht auch als Primàrschlüssel?


2. Die Index Spalten sind im SelectCommandText enthalten.

Der CommandBuilder kann Insert und Update Commands
erzeugen.

3. Die SQL Tabelle bekommt einen Primàrschlüssel.



Was heisst "bekommt einen Primàrschlüssel"?
Kommt ein neues Feld hinzu?
Werden die o.g. Spalten als Primàrschlüsselspalten
verwendet?



4. Das SelectCommand bleibt unveràndert. Es enthàlt
den Primàrschlüssel nicht.



Welche Eigenschaften Deines DataAdapters belegst Du
mit welchen Werten?


Der CommandBuilder kann keine Insert und Update
Commands mehr erzeugen, weil nun zwei eindeutige
Indizes zur Verfügung stehen und bei der Abfrage des
Schemas wahrscheinlich der falsche erraten wird, der
nicht im SelectCommand ist.



Das alles wàre etwas besser zu verstehen, wenn Du
einfach mal etwas relevanten Code sowie wie
Deine konkreten SQL-Statements zeigen würdest.



Also der .NET Code funktioniert plötzlich nicht mehr,
ohne dass er geàndert wurde.



Ohne zu wissen, wie dieser Code aussieht kann man
dazu nichts sagen.

Es wurde nur in der SQL Tabelle ein eindeutiger
Index hinzu gefügt.



Warum wurde was (Feld, Datentyp usw.) hinzugefügt?


Den Primàrschlüssel ins SelectCommand aufnehmen
geht nicht, aus bestimmten Gründen.



Und was sind das für "bestimmte Gründe"?


Die SQL Tabelle kann ich nicht manipulieren,
damit es (wieder) funktioniert.



Wenn Du ein Primàrschlüsselfeld hinzugefügt hast,
hast Du diese Tabelle doch schon manipuliert.


Kann ich im .NET Code (SqlCommandBuilder)
irgendwie angeben, was als eindeutiger Schlüssel
verwendet werden soll, um die Commands
automatisch zu generieren?



Mit Deinen spàrlichen Informationen làuft das alles nur
auf Ràtselraten hinaus.

Gruß aus St.Georgen
Peter Götz
www.gssg.de (mit VB-Tipps u. Beispielprogrammen)

Ähnliche fragen