「-」、「%」、「/」などの文字を含むフィールド名がある場合、またはフィールド名が「Level」の場合、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'"]
ました-エスケープ文字を完全に無視します。
すべての答えは非常に高く評価されます。
PS: 属性の名前は変更できません。