6

「SEMESTER」と「SUBJECT」が主キーである「SEMESTER、SUBJECT、OFFER、RESULT」のテーブルがあります。クエリを使用する場合

"DELETE FROM Course_Information WHERE Semester = 1 AND Subject = 'CSE-414' ;

Access データベースで完全に動作しますが、C# コードで使用しようとすると常に例外が発生します。

さらに、「DELETE FROM Course_Information WHERE Semester = 1;」を使用すると機能します。

WHERE 条件で「SUBJECT」と「SEMESTER」の両方を使いたい (同じ学期でも異なる科目が存在する可能性があるため)

私のコードを見て、

connection_string = aConnection.return_connectionString(connection_string);
            string sql_query = "DELETE FROM Course_Information WHERE Semester = " + this.textBox1.Text + " AND Subject = " + this.textBox2.Text + " ;";

            OleDbConnection connect = new OleDbConnection(connection_string);
            OleDbCommand command = new OleDbCommand(sql_query, connect);
            try
            {
                connect.Open();
                OleDbDataReader reader = command.ExecuteReader();
                MessageBox.Show("Delete Successful!");
                connect.Close();
                UpdateDatabase();
            }

            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
4

3 に答える 3

0

「挿入」クエリで同じエラーが発生した場合は、このメソッドを使用して例外を回避できます

string sqlQuery = "INSERT into EndResultOfTestCases(IDsOfCases,TestCaseName,ResultCase,ResultLog) VALUES(@ids, @casename, @results, @logs)";

        connection = new OleDbConnection(connectionStringToDB);
        command = new OleDbCommand(sqlQuery, connection);
        command.Parameters.AddWithValue("@ids",IDs);
        command.Parameters.AddWithValue("@casename", CaseName);
        command.Parameters.AddWithValue("@results", resultOfCase);
        command.Parameters.AddWithValue("@logs", logs);
        connection.Open();
        command.ExecuteNonQuery();
        connection.Close();
    }
于 2016-12-14T11:06:15.673 に答える