Реклама:

DataRow r = nd1.Kaf.FindByKK(key);

6. Обновим эту запись значениями столбцов из текущей записи DataGrid.

r["Nazv"] = sNazv; r["Fakultet"] = sFakultet; r["Korpus"] = sKorpus;

r["Sostav"] = System.Int16.Parse(sSostav);

7. Запишем изменения в записи таблицы Kaf в базу данных методом Update адаптера:

aKaf.Update(nd1, "Kaf");

8. Выведем текущую строку DataGrid из состояние редактирования: DataGrid1.EditItemIndex = -1;

9. Повторно свяжем данные и DataGrid: DataGrid1.DataBind();

Приведем ниже полный текст обработчика нажатия ссылки Update:

private void DataGrid1_UpdateCommand(object source,

System.Web.UI.WebControls.DataGridCommandEventArgs e)

{

//---значение первичного ключа (столбец KK) текущей записи DataGrid

short key = (System.Int16)DataGrid1.DataKeys[e.Item.ItemIndex];

//---TextBox - далее в него записываются значения всех

//---столбцов DataGrid TextBox tb;

//---значения столбцов текущей записи запоминаем в переменных

tb = (TextBox) e.Item.Cells[2].Controls[0];

string sNazv = tb.Text; //столбец Nazv

tb = (TextBox) e.Item.Cells[3].Controls[0];

string sFakultet = tb.Text; //столбец Fakultet

tb = (TextBox) e.Item.Cells[4].Controls[0];

string sKorpus = tb.Text; //столбец Korpus

tb = (TextBox) e.Item.Cells[5].Controls[0];

string sSostav = tb.Text; //столбец Sostav

//---найдем соответствующую запись в таблице Kaf набора данных nd1

DataRow r = nd1.Kaf.FindByKK(key);

//---обновим эту запись значениями столбцов из текущей записи ataGrid

r["Nazv"] = sNazv; r["Fakultet"] = sFakultet; r["Korpus"] = sKorpus;

r["Sostav"] = System.Int16.Parse(sSostav);

//---запишем измененную запись в таблицу Kaf базы данных

aKaf.Update(nd1, "Kaf");

//---выведем текущую строку DataGrid из состояние редактирования

DataGridl.EditItemlndex = -1;

//---обновим данные в DataGrid

DataGrid1.DataBind(); }

1.8.10. Тестовый запуск приложения

Запустим приложение. Нажмем ссылку Edit и изменим название кафедры во второй строке (рис. 1.52).

Шумаков П. В.  ADO.NET и создание приложений баз данных в среде Microsoft Visual Studio .NET. Руководство разработчика с примерами на C#.

рис 1.52

Нажмем ссылку Update и увидим, что изменения приняты (рис. 1.53) и должны быть записаны в базу данных. Для того чтобы окончательно убедиться в том, что запись в базу прошла успешно, перезапустим приложение.

Шумаков П. В.  ADO.NET и создание приложений баз данных в среде Microsoft Visual Studio .NET. Руководство разработчика с примерами на C#.

рис. 1.S3

1.9. Постраничный доступ к данным в Web-форме

В зависимости от объема используемых в Web-форме данных стратегии доступа к этим данным могут различаться.

Если данные невелики по объему, в Web-приложении создают набор данных, заливают его таблицы записями из источника данных и в дальнейшем, когда отображают данные в форме, берут их из набора.

Когда данные велики по объему, их разбивают на порции (страницы). В этом есть большой резон. Представим, что в извлекаемой таблице находится 10 000 записей, в то время как сетка элемента управления DataGrid Web-формы одновременно вмещает, например, 10. Заранее неизвестно, будет ли пользователь просматривать все 10 000 записей или ограничится, например, первыми 20. Поэтому недостающие данные подкачиваются в форму по мере необходимости. Эффективность этого способа очевидна, поскольку минимизируются требования к объему памяти для размещения набора данных и ко времени, требуемому для заливки данных в набор. Однако этот способ более сложно реализовать программно.


⇐ Предыдущая страница| |Следующая страница ⇒