Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Новый топик    Ответить
 Из БД не удаляются строки  [new]
Roman Zarubin
Member

Откуда:
Сообщений: 3
Я обращаюсб к БД через ODBC (SQL запрос: SELECT * FROM Table LIMIT 50)
Методом Fill я заполняю объект DataSet: objDA.Fill(objDS, "Tbl");
objDS заполняестся правильно. Затем мне надо все извлеченные строки удалить из БД.
Я пытаюсь это сделать так:
objDS.Tables["Tbl"].Clear();
objDS.Tables["Tbl"].AcceptChanges();
objDA.Update(objDS."Tbl");
В результате исключений не возникает, но и строки не удаляются. В таблице нет первичного ключа, поэтому объектом OdbcCommandBuilder воспользоваться нельзя.
Я пробовол также вызывать метод Delete для каждой строки в objDS, резутльтат - нулевой.
И всё же возможно ли в objDS (тип DataSet) как-то пометить строки, а затем удалить их из БД?

Другой вариант у меня тоже не проходит:
я в objDA заполняю свойство DeleteCommand (запрос: DELETE * FROM Table LIMIT 50),
затем вызваю objDA.Update(objDS."Tbl");
Не получаеися предположительно из за того, что я не указываю параметры:
objDA.DeleteCommand.Parameters.Add()
Но тут вроде бы и не нужны параметры...
Подскажите, где ошибка в первом и втором вариантах.
6 июн 07, 15:17    [4237341]     Ответить | Цитировать Сообщить модератору
 Re: Из БД не удаляются строки  [new]
winsky!
Member

Откуда: Киев
Сообщений: 5120
а если попробовать запустить это DELETE * FROM Table LIMIT 50
не из вашего клиента, чего скажет?
что за БД кстати? mysql?
6 июн 07, 15:28    [4237454]     Ответить | Цитировать Сообщить модератору
 Re: Из БД не удаляются строки  [new]
Roman Zarubin
Member

Откуда:
Сообщений: 3
winsky!
а если попробовать запустить это DELETE * FROM Table LIMIT 50
не из вашего клиента, чего скажет?
что за БД кстати? mysql?


Да, это MySQL. Но в каком смысле не из моего клиента? Просто у меня нет опыта работы с БД через ADO.NET. Я пробовал откомпилировать прогу, бзз SELECT, сразу выполняя DELETE,
но функция Update просит в качестве параметра DataSet, в котором должна уже быть таблица.
И я считаю, что надо вызвать objDA.DeleteCommand.Parameters.Add(), но не знаю с какими параметрами.
И, вообще, желательно не вызывать DELETE, а в DataSet пометить строки, которые должны быть удалены и вызвать Update. Но как это сделать? С С какими параметрами?
HELP!!!
6 июн 07, 18:06    [4238867]     Ответить | Цитировать Сообщить модератору
 Re: Из БД не удаляются строки  [new]
winsky!
Member

Откуда: Киев
Сообщений: 5120
во-первых, зачем их помещать в датасет, если нежно из удалить?

автор
Но в каком смысле не из моего клиента?

ну у мускла есть же какие-то утилиты для отладки запросов(надеюсь)? вот там и попробуйте запустить это свое DELETE * FROM Table LIMIT 50, что-то мне говорит, что это кривая команда, хотя я и не знаток mySQL
6 июн 07, 18:17    [4238921]     Ответить | Цитировать Сообщить модератору
 Re: Из БД не удаляются строки  [new]
winsky!
Member

Откуда: Киев
Сообщений: 5120
и еще
автор
В таблице нет первичного ключа

- как по мне, так таблица без пк - ваще не таблица.
6 июн 07, 18:18    [4238929]     Ответить | Цитировать Сообщить модератору
 Re: Из БД не удаляются строки  [new]
winsky!
Member

Откуда: Киев
Сообщений: 5120
если нежно из удалить?
читать как "если нужно их удалить"

с пальцАми чего-то стало.
6 июн 07, 18:20    [4238940]     Ответить | Цитировать Сообщить модератору
 Re: Из БД не удаляются строки  [new]
Roman Zarubin
Member

Откуда:
Сообщений: 3
winsky!
во-первых, зачем их помещать в датасет, если нежно из удалить?

автор
Но в каком смысле не из моего клиента?

ну у мускла есть же какие-то утилиты для отладки запросов(надеюсь)? вот там и попробуйте запустить это свое DELETE * FROM Table LIMIT 50, что-то мне говорит, что это кривая команда, хотя я и не знаток mySQL

DELETE * FROM Table LIMIT 50 работает. ПРОВЕРЕНО!!!
Таблицу без первичного ключа создавал не я, но работать мне надо
именно с такой таблицей :(
HELP!!!!!
6 июн 07, 19:15    [4239239]     Ответить | Цитировать Сообщить модератору
 Re: Из БД не удаляются строки  [new]
winsky!
Member

Откуда: Киев
Сообщений: 5120
ну так напишите


command.CommandText = "DELETE * FROM Table LIMIT 50";
command.ExecuteNonQuery();

нафик вы в датасет их тянете?
7 июн 07, 10:38    [4240846]     Ответить | Цитировать Сообщить модератору
Все форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM Ответить