Гость
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Как удалить строку из базы через ADO? / 5 сообщений из 5, страница 1 из 1
03.03.2003, 13:21
    #32113605
hypnotic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить строку из базы через ADO?
Удаляю строку из DataTable. После удаления состояние строки переходит в DataRowState.Deleted. При этом удаляются элементы из св-ва DataRow.ItemArray. Сл-но, не могу составить SQL-запрос для OleDbDataAdapter.DeleteCommand, значит не могу вызвать Update() и удалить строку..?
Пробовал обработать сообщение DataTable.RowDeleting - опять не удаляется из базы..?
Как удалить строку из базы через ADO, если работаю с DataTable?
...
Рейтинг: 0 / 0
03.03.2003, 14:17
    #32113645
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить строку из базы через ADO?
используй
Код: plaintext
DataTable del=tbl.GetChanges(DataRowState.Deleted);
для составления и выполнения DELETE FROM
после всех удалений из БД
tbl.AcceptChanges();
...
Рейтинг: 0 / 0
03.03.2003, 16:30
    #32113777
hypnotic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить строку из базы через ADO?
2Кузя:
Когда строка помечается как Deleted, из нее удаляются все данные - элементы DataRow.ItemArray. Как же тогда составить запрос на ее удаление?
...
Рейтинг: 0 / 0
03.03.2003, 16:46
    #32113785
кузя
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить строку из базы через ADO?
Код: plaintext
1.
DataTable del=tbl.GetChanges(DataRowState.Deleted);
object    val=del.Rows[ 0 ][ "имяполя" , DataRowVersion.Original];
...
Рейтинг: 0 / 0
03.03.2003, 18:57
    #32113908
SCS
SCS
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как удалить строку из базы через ADO?
если используешь OleDbAdapter и сам составляешь команды на Insert, Update и Delete, то лучший способ - параметрические команды
Код: plaintext
1.
2.
3.
OleDbCommand	cm=new OleDbCommand( "DELETE FRM tbl WHERE tbl.a=?" , conn);
OleDbParameter	pm=new OleDbParameter( "P1" , OleDbType.Integer,  4 , ParameterDirection.Input, false,  0 ,  0 ,  "a" , DataRowVersion.Original);
cm.Parameters.Add(pm);
adapter.DeleteCommand=cm;

причем для всех параметров, которые появляются в WHERE используешь DataRowVersion.Original, а для всех остальных DataRowVersion.Current

после всего нужно выполнить
adapter.Update(tbl);
tbl.AcceptChanges();
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Как удалить строку из базы через ADO? / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]