[Access 2003] Datentypen in Kriterienausdruck unverträglich bei simplem SQL Update

Sascha Wetzel

Grünschnabel
Hi @ all,

ich hab eine Tabelle in meiner Accessdatenbank die unteranderem auch die Spalte Name (Feldtyp ist Text) hat.

Nun möchte ich den Name updaten und hab dazu folgendes SQL-Command geschrieben

Code:
UPDATE Ausbilder SET Name='" + txtNameGrid.Text + "' WHERE ID='" + dataTable.Rows[selectedRow][13] + "'

Leider kommt sowohl direkt in der Datenbank als auch aus meinem Programm die Fehlermeldung Datentypen in Kriterienausdruck unverträglich.

Ich kanns nicht reproduzieren warum.

Meine Datenbank ruf ich über:
Code:
connectionString = new OleDbConnection(pathToDatabase);
connectionString.Open();
dataAdapter = new OleDbDataAdapter();
dataAdapter.UpdateCommand = connectionString.CreateCommand();
dataAdapter.UpdateCommand.CommandText = sqlStatement;
dataAdapter.UpdateCommand.ExecuteNonQuery();
connectionString.Close();

Hat von euch vlt. jemand eine Idee warum?
 
name ist wie immer ein ungünstiger Name für ein Feld.
Versuch mal den Feldnmane in [] zu schreiben. Dies sind die in MS Access die Begrenzungszeichen für Bezeichnungen, damit Access weiss, dass name eine Feldbezeichnung ist. Sie sind nicht zwingend, sofern der Feldname kein reserviertes Wort ist. Am besten schreibst du es einfach immer mit, dann bist du auf der sicheren Seite

Die ID ist wahrscheinlich eine Zahl. Dann solltest du sie im WHERE auch als Zahl vergleichen. Ergo ohne die '

SQL:
UPDATE [Ausbilder] SET [Name]='" + txtNameGrid.Text + "' WHERE [ID]=" + dataTable.Rows[selectedRow][13]
 
Zuletzt bearbeitet von einem Moderator:
Danke für die schnelle Antwort.

Das mit den [] werde ich mir merken :) war zwar nicht das Problem aber trotzdem ein Wertvoller Tipp.

Die '' um die ID waren der Übeltäter :)
Ein String ist halt nunmal keine Zahl :)

Nochmal besten Dank!
 
Mit den [] kannst du auch Feldnamen mit Leerzeichen per SQL ansteuern. Viele Accessuser schreiben Leerzeichen in die Namen, weil Access das zulässt.....
SQL:
SELECT
    [Feld],
    [noch ein Feld]
FROM
    [meine Tabelle]
 
Zuletzt bearbeitet von einem Moderator:
Das war mir bekannt, nutz ich jedoch nicht...also die Leerzeichen zwischen den Worten...
Den eine Datenbankspalte soll ja kein Leerzeichengetrennter Satz sein :)
 

Neue Beiträge

Zurück