verwendetes Datenbanksystem: MSSQL Express 2005
Moin!
Ich habe folgendes Problem: Wenn ich mit einem OleDbCommand eine Tabelle erzeuge, die eine Spalte des Typs NVARCHAR(50) enthält, bekomme ich eine OleDbException mit der Meldung, dass der NVARCHAR(50)-Datentyp nicht gefunden werden kann.
Mein Sql-String sieht in etwa wie folgt aus:
CREATE TABLE [meinetabelle] (spaltea nvarchar(50), spalteb int)
Ich bekomme die selbe Fehlermeldung, wenn ich einer bestehenden Tabelle eine Spalte hinzufügen möchte.
ALTER TABLE [meinetabelle] ADD [spaltec] nvarchar(50)
Mit Access funzt es wunderbar. Auch mit OdbcCommand und MySql klappt es wunderbar.
Hat jemand 'ne Idee?
Wenn ich die Befehle direkt im Sql Server Managment Studio absetze funktioniert es wunderbar.
Vielen Dank schon mal.
T-Man
Bei der OleDbType-Enumeration gibt es keinen Datentyp NVarChar. (Ich bezweifle deshalb, ob das mit OleDbCommand und Access wirklich funktioniert.)
Aber warum benutzt Du für MS-SQL nicht SqlCommand? Jürgen
Autsch!!!
Ich habe es.
Mein Befehl war
CREATE TABLE [mytable] ([spaltea] [nvarchar(50)], [spalteb] [int])
Das Problem waren die (unnötigen) eckigen Klammer um den Typ. Allerdings nur bei [nvarchar(50)], nicht bei [int].
Wieso auch immer stören die Eckigen klammer um int nicht, während sie um nvarchar() stören. Muss man nicht verstehen...
Gruß
T-Man
Hallo T-Man,
[nvarchar] (50)
geht.
Benutze bitte den nativen SQL-Treiber.
ODBC und OleDB sind langsam, umständlich und veraltet.
Siehe auch http://www.seven-c.de/files/DatenbankenHowTo.htm.
Grüße Bernd
Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3