OleDbCommandBuilder OleDbDataAdapter Проблема VB.Net - PullRequest
0 голосов
/ 07 мая 2011

У меня есть поле в базе данных доступа 2003, названное первым.Я запускаю команду обновления адаптера данных, выдает «Синтаксическая ошибка в выражении UPDATE».Я изменяю имя поля на firstName, попробуйте обновить снова, оно работает.У меня уже есть куча программ, использующих базу данных и использующих поле «first», действительно ли мне нужно переименовывать поле, возвращаться назад и обновлять все мои программы, чтобы они читали из firstName вместо first?Я действительно не хочу идти по этому пути, если мне не нужно.Какие-либо предложения?Спасибо!

(provider = microsoft.jet.oledb.4.0)

* Редактировать: я хотел указать, я хочу, чтобы ответ использовал командную сборку (но так не будет),Извините за путаницу.

Ответы [ 3 ]

2 голосов
/ 24 января 2012

Сделайте это с вашим объектом commandbuilder:

Dim cmdBuilder As New OleDb.OleDbCommandBuilder(oledbAdapter)
cmdBuilder.QuotePrefix = "["
cmdBuilder.QuoteSuffix = "]"

Это поставит скобки вокруг всех имен полей.У меня была такая же проблема с полем с именем Index, и это решило ее.

1 голос
/ 07 мая 2011

Попробуйте поставить квадратные скобки вокруг имени поля, [first].

0 голосов
/ 13 мая 2011

oledbcommandbuilder разрывается, когда поля именуются с зарезервированным словом «first».Пришлось писать свой собственный SQL

...