Ответ 1
В коде С# нет ничего плохого; что синтаксическая ошибка SQL.
Во всяком случае, нет необходимости в *
. Вы удаляете строки, а не столбцы, из таблицы, поэтому вы не указываете удаляемые столбцы:
DELETE FROM compsTickers
Есть ли способ (похожий на приведенный ниже код) удалить все строки в указанной таблице с помощью С#?
SqlConnection con = new SqlConnection(conString);
con.Open();
string sql = @"DELETE*FROM compsTickers;";
SqlCommand cmd = new SqlCommand(sql, con);
cmd.ExecuteNonQuery();
con.Close();
Сейчас я получаю сообщение об ошибке:
Неправильный синтаксис рядом с '*'
В коде С# нет ничего плохого; что синтаксическая ошибка SQL.
Во всяком случае, нет необходимости в *
. Вы удаляете строки, а не столбцы, из таблицы, поэтому вы не указываете удаляемые столбцы:
DELETE FROM compsTickers
Вы не укажете, что столбцов DELETE FROM compsTickers
достаточно.
(Также TRUNCATE TABLE compsTickers
будет делать, это другой способ удаления, который может иметь смысл в зависимости от настроек журнала транзакций)
Просто удалите *
, поскольку это не нужно для операторов DELETE
string sql = @"DELETE FROM compsTickers;";
DELETE (Transact-SQL) (ссылка)
FROM является необязательным. Вы всегда удаляетесь из таблицы, поэтому все, что вам нужно было (вам даже не нужен разделитель инструкций для одного оператора):
DELETE compsTickers
Которая опустошает таблицу
Я предлагаю использовать
string sql = @"DELETE FROM compsTickers;";
Вам не нужно использовать *
или указать любое имя столбца в инструкции delete.
Запись '*' в запросе удаления не является хорошей практикой. Поскольку мы не удаляем столбцы, мы фактически удаляем строки из таблицы.
* относится ко всем столбцам в таблице. Попробуйте использовать следующий синтаксис 'Удалить из compsTickers', за которым следует условие.
Синтаксис команды delete неверен. Вы не обязаны использовать '*'
в команде delete. Используйте команду string sql = @"DELETE FROM compsTickers;"
для своей работы.
Спасибо.
SqlConnection con = new SqlConnection(conString);
con.close();
cmd=new SqlCommand("DELETE FROM compsTickers", con);
con.Open();
int i = cmd.ExecuteNonQuery();
if(i>0)
{
MessageBox.Show("Successful.");
}
con.Close();
Ошибки будут происходить из-за отсутствия пробелов до и после "*" (должно быть "*" ).