Я пытаюсь перечислить типы данных из Microsoft Access 2000-2007 (в зависимости от версии базы данных MS Access) в поле со списком для программы C #. Как я могу этого добиться?
Как получить список типов данных MS Access?
Ответы (2)
Я не думаю, что можно опросить движок во время выполнения, чтобы перечислить типы данных, которые он поддерживает. Например, DAO не раскрывает некоторые типы данных Jet 4.0, такие как NCHAR
и BINARY
; ADO покажет типы данных, которые никогда не поддерживались ядром базы данных Access; только ACEDAO покажет многозначные типы.
Я думаю, вам нужно заранее знать типы данных, которые поддерживает каждая версия движка, а затем выбрать соответствующий набор во время выполнения.
Типы данных Jet 4.0 (с Access2000 по 2003 включительно) и различные синонимы можно найти здесь (должен также дать некоторые подсказки о том, какие типы являются новыми для Jet 4.0, на случай, если вам потребуется поддержка более ранних версий движка).
ACE (Access2007) добавил тип вложения; также многозначные («сложные») типы для поддержки списков SharePoint: я думаю, вам нужно будет решить для себя, являются ли многозначные типы отдельными типами или просто вариациями существующих типов. Некоторые подробности можно найти в справке по Access2007.
Microsoft.Office.Interop.Access.Dao.DataTypeEnum
Конечно, вам нужно добавить ссылку, и я абсолютно ненавижу добавлять ссылку на Office, потому что вы привязаны к версии Office, а я ненавижу обновлять код каждый раз, когда мы обновляемся.