Владетель
Зарегистрирован: 29 September 2002
Сообщения: 20482
Примеры кода: 12
|
RE[11]: SqlDataAdapter |
10 January 2003 13:03 |
|
|
|
|
Пасибки, это я уже сделал, но дальше возникла другая проблемка....
Вот код:
private void DataGrid1_DeleteCommand(object source, System.Web.UI.WebControls.DataGridCommandEventArgs e)
{
this.sqlDataAdapter1.Fill(this.myDataSet1);
if (dataView1.AllowDelete)
dataView1[e.Item.ItemIndex+this.DataGrid1.PageSize*this.DataGrid1.CurrentPageIndex].Delete();
this.sqlDataAdapter1.Update(this.myDataSet1);
this.myDataSet1.AcceptChanges();
this.DataGrid1.DataBind();
bindDate();
}
Вродебы код нармальный, но при работе возникает проблемка....
Допустим есть таблица с записями:
1
2
3
4
5
6
Я открываю два окна броузера, и удаляю в одном сначало запись нажимая в DataGrid на кнопку delete(например на 4), а потом удаляю например 5, но у меня удалиться 6, так как датак грид скажет что нужно удалить 5-тую строчку, но он "думает" ещё что всего записей 6 в таблице...
Я могу получить ИД записи из дата грида вот таким например способом
this.DataGrid1.DataKeys[e.Item.ItemIndex]
Но даьше как мне в dataView отыскать мою запись и именно её удалить?
Тоесть у меня не получаеться выполнить dataView1.FindRows(), не было правда времени особо поэкспеременитровать, но может подскажешь сразу как это сделать?
Зарание благодарен;)
Ты сначала отсортируй DataView по id, а потом уже можешь использовать DataView.Find(). Вернее так:
dataView1[dataView.Find(DataGrid1.DataKeys[e.Item.ItemIndex])].Delete();
Многие вещи нам непонятны не оттого, что наши понятия слабы, а оттого, что данные вещи не входят в круг наших понятий.
|
|