У меня есть некоторые проблемы с чтением из базы данных accdb, когда она имеет имена полей с такими символами, как «-», «%», «/» или если имя поля «Уровень». Когда у меня есть что-то вроде этого:
string mySelectQuery = "SELECT 'Part_Time_%','Level',Level_change_reason FROM Employees";
OleDbConnection myConnection = new OleDbConnection(oledbConnectString);
OleDbCommand myCommand = new OleDbCommand(mySelectQuery,myConnection);
myConnection.Open();
OleDbDataReader myReader = myCommand.ExecuteReader();
это работает хорошо, потому что символы '' отменяют специальные символы и значение слова. Хорошо:
if ((myReader["Name"] == DBNull.Value) ....
if ((myReader["Surname"] == DBNull.Value) ....
Но когда я пытаюсь это:
if ((myReader["Macro-activity"] == DBNull.Value) ...
if ((myReader["Level"] == DBNull.Value)....
он переходит к оператору catch. Я также пробовал myReader["\u004cevel"], myReader["'Macro-activity'"]
- он полностью игнорирует escape-символы.
Каждый ответ будет очень признателен.
P.S.: Не могу изменить название атрибутов.