0

これらの質問はたくさんありますが、それらを見て自分のエラーを理解することはまだできません。Access のテーブルからレコードを削除しようとしています。コードは次のとおりです。

//レコードを削除するメソッド public static void DeleteProject(Project aProject) {

        {
            String sSQLProjectDeleteCommand = "Delete * from Project where JobNo=" + aProject.JobNo;


            // Create the command object
            if (aConnection.State == ConnectionState.Closed)
                aConnection.Open();

            OleDbCommand Cmd = aConnection.CreateCommand();
            //Delete project
            Cmd.CommandText = sSQLProjectDeleteCommand;
            // Execute the SQL command
            Cmd.ExecuteNonQuery();
            aConnection.Close();
        }
        catch (System.Exception exc)
        {
            Console.WriteLine(exc.Message);
        }
    }

3 層アーキテクチャを使用していますが、「Cmd.ExecuteNonQuery();」でエラーが発生します。

4

1 に答える 1

0

あなたはあなたをしませDELETE * FROMDELETE FROM

を削除する*と、動作するはずです。

--

更新:また、JobNoが文字列の場合は、パラメーターに引用符を追加する必要があります。

String sSQLProjectDeleteCommand = "Delete * from Project where JobNo='" + aProject.JobNo + "'";

ただし、これはパラメーターを使用して行う方がよいでしょう。

String sSQLProjectDeleteCommand = "Delete * from Project where JobNo=?";
...
Cmd.Parameters.Add(aProject.JobNo);
Cmd.ExecuteNonQuery();

更新 2 : OleDbCommand は名前付きパラメーターを許可しないため、パラメーターを変更しました。

于 2012-04-29T05:44:01.543 に答える