Schreibschutz einer DataTable-Spalte

26/06/2008 - 14:49 von Christoph Michalski | Report spam
Hallo,
die Daten aus einer Access2000-Datenbank werden zunàchst in eine DataTable
eingelesen,
die dann im 2.Schritt mit einen DataGridView über DataSource gebunden wird.
Nun muß ich immer wieder, vom Programm aus(!), Änderungen in einzelnen
Feldern vornehmen.
Dabei habe ich folgendes Problem:
wurde bei SQL-Abfrage der Inhalt einer Datenbank-Spalte im Orginal
ausgelesen, so kann ich Felder dieser Splate spàter ohne Probelem àndern.
Wurde jedoch z.B SQL-Funktion Trim benutzt oder wurde ein String hinzugefügt,
so bekomme ich beim Versuch eine Änderung vorzunehmen eine Fehlermeldung "Die
Spalte ist schreibgeschützt"
Beispiel:
"SELECT TestFeld As TstFld " funktioniert richtig
"SELECT Trim(TestFeld) As TstFld... " Fehlermeldung
"SELECT TestFeld & 'blabla ' As TstFld... " Fehlermeldung
Kann mir vielleicht diese Phànomen erklàren oder gar ein Lösung vorschalgen???
Gruß
Christoph
 

Lesen sie die antworten

#1 Peter Götz
26/06/2008 - 19:26 | Warnen spam
Hallo Christoph,

Beispiel:
"SELECT TestFeld As TstFld " funktioniert richtig



Ein einfaches Select mit dem Du direkt eines oder mehrere
Felder liest ist natürlich kein Problem.

"SELECT Trim(TestFeld) As TstFld... " Fehlermeldung



Bei vorstehenden Select steht Dir die VB-Funktion Trim() im
Wege. Du kannst in das hinter dieser Trim-Funktion liegende
Feld natürlich nicht schreiben. Beim Schreiben müsste ja
sonst das Trim "rückwàrts" ausgeführt werden und das
geht natürlich nicht.

"SELECT TestFeld & 'blabla ' As TstFld... " Fehlermeldung



Auch das geht natürlich nicht rückwàrts. Wenn Du in das daraus
resultierende Feld Deiner DataTable etwas schreibst, wie sollte
dann entschieden werden welcher Teil des neuen/geànderten
Inhalts in welches der beiden Felder der DB-Tabelle kommen
soll?

Kann mir vielleicht diese Phànomen



Das ist kein Phànomen sondern einfach ein phys.
Gegebenheit.

erklàren oder gar ein Lösung vorschalgen???



Vermeide in Deinem Select-Statement Funktionen
und/oder Stringverkettungen von Inhalten aus mehreren
Feldern.
Das Trimmen und/oder Verketten von Inhalten kannst Du
spàter (in Deinem nachfolgenden Programmcode),
nachdem Du die Daten in Deine DataTable
eingelesen hast, immer noch machen.

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

Ähnliche fragen