powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Редактирование добавленной записи. Какой статус будет иметь запись?
6 сообщений из 6, страница 1 из 1
Редактирование добавленной записи. Какой статус будет иметь запись?
    #34381160
n3n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
n3n
Гость
Возник вопрос, ниже приведу порядок действий:
1. Добавляю запись в таблицу (таблица в датасете, запись добавляю программно VB.NET)
2. Вызываю DataAdapter.Update (который, после добавления записи в БД, в ключевое поле таблицы возвращает и записывает реальный ключ, получаемый из БД)

Подписан на событие Dataadapter.RowUpdated
Какой статус имеет эта запись в этом событии? Почему она делается Modify, если AcceptChange вызывается (по MSDN) после события Dataadapter.RowUpdated, по логике она должна быть Add (и не важно что записался ключ в эту строку). Поясните ситуацию, плиз.
Заранее спасибо.
...
Рейтинг: 0 / 0
Редактирование добавленной записи. Какой статус будет иметь запись?
    #34388661
a1ekseyv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Когда прочитал не поверил.Специально создал такую ситуация и datarow.
Имеет статус added "Added". Сколько не редактировал строку. Правда делал все на C#.
...
Рейтинг: 0 / 0
Редактирование добавленной записи. Какой статус будет иметь запись?
    #34388932
n3n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
n3n
Гость
a1ekseyvКогда прочитал не поверил.Специально создал такую ситуация и datarow.
Имеет статус added "Added". Сколько не редактировал строку. Правда делал все на C#.
Если не трудно сбросьте код с которым работали, сравнить. Строку я не редактирую сам (когда редактирую сам все ОК - статус именно "Add", ситуация возникает после Dataadapter.Update и возврата значения ключа из хранимой процедуры и именно на событии Updated т.е. после того, как вернулся реальный ключ.
...
Рейтинг: 0 / 0
Редактирование добавленной записи. Какой статус будет иметь запись?
    #34389034
a1ekseyv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Все делал для проверки. Поэто создал форму кинул dataset не типизированный. С
Помошью визарда создал в нем таблицу и два столбца. Так же кинул textbox в которм отображаю статус строк и и два кнопки. По первой счиитываю статус всех строк в таблице и записываю в textbox. По второрой программно добовляю стоку.

private void button1_Click(object sender, EventArgs e)
{
textBox1.Text = "";
foreach (DataRow dr in dataSet1.Tables[0].Rows)
{
textBox1.Text += dr.RowState.ToString() + " ";
}
}

private void button2_Click(object sender, EventArgs e)
{
DataRow dr = dataSet1.Tables[0].NewRow();
dr[0] = "sdfs";
dr[1] = "1233";
dataSet1.Tables[0].Rows.Add(dr);
}
...
Рейтинг: 0 / 0
Редактирование добавленной записи. Какой статус будет иметь запись?
    #34389052
a1ekseyv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не внимательно прочитал.
Когда делаешь Update. У всех строк автоматически меняется статус вроде на "Unchanged"(не помню). Так как считается, что строки ты сохранил иначе зачем делать update. Row_update вызывается позже.
Можно решить несколькими способами.
Ключевое поле например “IP”.
 
Берем те строки у которых она не заполнена и заполняем вручную. Будет что-то вроде.
 
DataRow [] drTemp = dataset.Table[“TableName”].Select(“IP is null”);
foreach(DataRow dr in drTemp.Rows)
{
      Здесь записываем стоку в базу и назначаем ключевое поля.
}
 
Хотя не проще после заполнения считать таблицу и базы еще раз сохранив положение курсора на стоке.
Так к дома под рукой нет MSDN и VS. То могу посоветовать посмотреть метод RowUpdateding. Он вроде вызывается до Update.
...
Рейтинг: 0 / 0
Редактирование добавленной записи. Какой статус будет иметь запись?
    #34389154
n3n
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
n3n
Гость
a1ekseyvНе внимательно прочитал.
Когда делаешь Update. У всех строк автоматически меняется статус вроде на "Unchanged"(не помню). Так как считается, что строки ты сохранил иначе зачем делать update. Row_update вызывается позже.
Можно решить несколькими способами.
Ключевое поле например “IP”.
 
Берем те строки у которых она не заполнена и заполняем вручную. Будет что-то вроде.
 
DataRow [] drTemp = dataset.Table[“TableName”].Select(“IP is null”);
foreach(DataRow dr in drTemp.Rows)
{
      Здесь записываем стоку в базу и назначаем ключевое поля.
}
 
Хотя не проще после заполнения считать таблицу и базы еще раз сохранив положение курсора на стоке.
Так к дома под рукой нет MSDN и VS. То могу посоветовать посмотреть метод RowUpdateding. Он вроде вызывается до Update.
В MSDN описан порядок возникновения событий, AcceptChange возникает после Updated и если подписаться на событие Updated, то в нем, по логике, должен быть статус Add. Считать не проще, мне нужен временный локальный ключ и новый, вренувшийся из базы.RowUpdateing не подходит, в нем еще не известен новый ключ, - это событие происходит перед Update, в нем известна обновляемая строка, но она еще не обновилась.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / Редактирование добавленной записи. Какой статус будет иметь запись?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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