ms access DBファイルに接続して、JET OLEDB接続を使用してC#で次の更新クエリを実行します。クエリはフィールドの変更に失敗し、正しく実行されますが、0 行しか変更されません。
問題は、パラメータがどのように処理され、DB と比較されるかだと思いますが、それを修正する方法がわかりません。
「ユーザー」列はテキストとして設定されます。パラメータと同じように完全に設定された挿入ステートメントがあります。
com.CommandText = "UPDATE [ExamMaster] SET [User] = (DLookup('LName', 'Users', 'ID' = '@correctUser') WHERE [User] = '@user'";
com.Parameters.AddWithValue("@correctUser", correctUser);
com.Parameters.AddWithValue("@user", userName);
where句にパラメータを使用せず、次のようにコマンド文字列に挿入するだけの場合:
WHERE [User] = '"+userName+"'";</code>
DBをうまく更新します。ここで何が欠けていますか?更新:一重引用符の有無にかかわらず違いはなく、パラメーターの順序を並べ替えても機能しません。