2015-05-17 4 views
-2

Я использую этот код, чтобы попытаться удалить данные из моей таблицы:Ошибки при удалении строки из базы данных

SqlConnection con = new SqlConnection(str); 
SqlCommand cmd = new SqlCommand("delete * from login", con); 
con.Open(); 
cmd.ExecuteNonQuery(); 

Когда я запускаю это я получаю эту ошибку:

An unhandled exception of type 'System.Data.SqlClient.SqlException' occurred in System.Data.dll Additional information: Incorrect syntax near '*'

ответ

1
SqlCommand cmd = new SqlCommand("delete from login", con); 

Вам не нужно указывать, какой столбец вы удаляете, поскольку вы всегда удаляете целые строки. Вот почему вы не должны писать *

+0

Большое вам спасибо –

2

Стандартный синтаксис для ВЕЬЕТЕ является

DELETE from <tablename> WHERE <condition> 

Нет Звездочка не требуется, прежде чем FROM. Просто MS-Access любит этот синтаксис.

Также имейте в виду, что если вы не добавить WHERE условие, вся таблица удаляется, но это может быть проще и быстрее с

DROP TABLE <tablename> 
+0

Большое вам спасибо –

0

Проблема в запросе.

Вместо того чтобы писать:

Delete * from login 

Вы должны написать:

Delete from login 

Exp: в delete команды нам не нужно писать * как в select заявлении, так как вы не можете удалить только некоторые столбцы, но всю строку. Однако предложение where может быть использовано для выбора определенных строк.

+0

О, спасибо большое, Дэвид. Я буду заботиться об этих ошибках в будущем. –

0

Удалить *, и ваш запрос так же хорош, как и вы.

Смежные вопросы