Я пытаюсь прочитать базу данных MS Access, используя класс OleDbConnection
в C #.
Пока я могу подключаться к БД и читать конкретную таблицу и каждую ее строку. Я могу без проблем получить поля, основанные на строке. Но некоторые столбцы являются внешними ключами (numeric
), и я получаю числовое значение вместо строкового (как это видно в MS Access).
Вот краткий пример того, как я продолжаю:
public void ReadDB(OleDbConnection connection)
{
connection.Open();
OleDbDataAdapter dataAdapter = new OleDbDataAdapter("Select * From T_MYTABLE", connection);
DataSet localData = new DataSet();
dataAdapter.Fill(localData);
foreach (DataRow dataRow in localData.Tables[0].Rows)
{
string name = dataRow["APP_NAME"].ToString();
string status = dataRow["APP_STATUS"].ToString();
}
connection.Close();
}
На самом деле имя переменной содержит ожидаемое значение, но status - это числовое значение перечисления, представляющего состояние.
Если мы посмотрим данные с помощью MS Access, мы получим, например:
Пример таблицы MS Access
И статус определяется следующим образом: Определение Enum
Так что на самом деле для этой строки я получаю:
name = "MyApplication"
что правильно
status = 83
что должно быть "ростом"
Есть ли способ получить строковое значение вместо этого? Должен ли я использовать другой способ чтения таблицы (вместо использования DataSet)?