OledbDataReader getOrdinal Проблема

У меня возникла проблема с функцией GetOrdinal из OleDb.DataReader. В моей таблице у меня есть столбцы с некоторым пробелом. Я попытался вызвать его с некоторыми [ ]:

Dim dr as System.Data.OleDb.OleDbDataReader dr.GetOrdinal("[Nom truc]")

но он говорит мне: "IndexOutOfRangeException"

Не могу изменить название поля. Тип моей базы - accdb. В Microsoft Access мой запрос работает.

Извините за мой плохой английский, я девушка из Франции :)

Заранее спасибо!


person MlleStrife    schedule 04.04.2016    source источник


Ответы (1)


Вы должны удалить скобки:

'dr.GetOrdinal("[Nom truc]")
dr.GetOrdinal("Nom truc")
person LarsTech    schedule 04.04.2016
comment
Это не работает, потому что я использую запрос для настройки OleDbCommand: ‹br/› Dim c as System.Data.OleDb.OleDbCommand("Select [nom truc] from machin") <br/> c.ExecuteReader()‹br/› Без скобок у меня есть синтаксическое исключение. Поэтому я попытался поставить скобки в c и удалить их из dr.GetOrdinal, но ничего не вернул. - person MlleStrife; 05.04.2016
comment
@MlleStrife Вы сохраняете скобки в своем sql, вы теряете скобки в своей функции GetOrdinal. Если он ничего не возвращает, значит, у вас нет данных. - person LarsTech; 05.04.2016
comment
Большое спасибо, все работает! :) Я сделал ошибку в имени поля, когда пытался напечатать результат GetOrdinal... Я такой неуклюжий! Еще раз спасибо за ваш быстрый ответ! - person MlleStrife; 05.04.2016