не могу заставить работать команду удаления - PullRequest
1 голос
/ 05 апреля 2011

Может кто-нибудь объяснить, что не так с этой командой удаления, я пытаюсь удалить строку из моей таблицы, которая содержит некоторую информацию о рейсе, а затем заменить ее новой. Вставка работает нормально, но удаление не будет работать. любая помощь будет велика, спасибо

        OleDbCommand deleteCmd = new OleDbCommand();
        sqlStr = "DELETE FROM tblFlights WHERE Arrivals = '" + arrival + "'";

        connection.Open();
        // delete setup
        deleteCmd.Connection = connection;
        deleteCmd.CommandText = sqlStr;
        //activate the deletion
        dataAdapter.DeleteCommand = deleteCmd;

При необходимости может быть предоставлена ​​дополнительная информация

Ответы [ 4 ]

2 голосов
/ 05 апреля 2011

Вы на самом деле не запускали команду.Вам не хватает этого:

deleteCmd.ExecuteNonQuery();

Кроме того, вы можете посмотреть на SQL-инъекцию.

1 голос
/ 05 апреля 2011

РЕДАКТИРОВАТЬ: как предложено выше, вам необходимо:

deleteCmd.ExecuteNonQuery();

для фактического выполнения команды.

Является ли поступление строкой?если это так, попробуйте обрезать оба значения при сравнении:

sqlStr = "DELETE FROM tblFlights WHERE LTRIM(RTRIM(Arrivals)) = LTRIM(RTRIM('" + arrival + "'))";        

Если это не сработает, то выберите ниже и выберите, что он возвращает:

SELECT * FROM tblFlights WHERE Arrivals = 'Your Arrival'
1 голос
/ 05 апреля 2011

Ваш код подходит для атак с использованием SQL-инъекций, посмотрите на мой собственный вопрос о способах предотвращения таких атак и используйте безопасные запросы - Оптимизация метода - C #

1 голос
/ 05 апреля 2011

Пожалуйста, не делайте этого, так как он подвержен SQL-инъекциям

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...