Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Формирование программного кода




Теперь перейдем к формированию программного кода. Начнем с загрузки формы. В обработчике события загрузки формы необходимо заполнить информацией набор данных Dataset (листинг).

Листинг

' Visual Basic

Private Sub Forml_Load(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles MyBase.Load

SqlDataAdapterl.Fill(DataSetll)

End Sub

 

//C#

Private void Forml__Load (object sender, System. EventArgs e)

{

SqlDataAdapterl.Fill(dataSetll);

}

Набор данных заполняется путем вызова метода Fill адаптера данных.

На следующих шагах последовательно сформируем программный код для обработки событий нажатия кнопок.

Для обеспечения возможности добавления записи будет использована команда SqlInsertcommand1 адаптера данных. Для получения доступа к тексту этой команды выделите мышью объект SqlDataAdapterl, войдите в окно его свойств и найдите строку InsertCommand. Раскройте ее узел, щелкнув на значке (+), найдите свойство CommandText и нажмите кнопку в этой строке.


Откроется окно построителя запросов Query Builder с текстом соответствующего SQL-запроса (рис. 47).

 

Рис 47. Формирование запроса в окне Query Builder

Из текста этого запроса видно, что для того чтобы добавить запись в таблицу Categories, необходимо задать значения двум параметрам этого SQL-запроса: @CategoryName и @Description. Это обстоятельство нужно учесть при формировании программного кода. Программный код обработки события нажатия кнопки Добавить приведен в листинге.

Листинг

' Visual Basic

Private Sub Buttonl_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Buttonl.Click

'Добавление записи -

SqlDataAdapterl.InsertCommand.Parameters("@CategoryName").Value=""

SqlDataAdapterl.InsertCommand.Parameters("@Description").Value=""

SqlConnectionl.Open()

SqlDataAdapterl.InsertCommand.ExecuteNonQuery()

SqlConnectionl.Close()

DataSetll.Clear()

SqlDataAdapterl.Fill(DataSetll)

End Sub

 

//C#

private void buttonl_Click(object sender, System.EventArgs e)

{

//Добавление записи

SqlDataAdapterl.InsertCommand.Parameters["@CategoryName"].Value="";

SqlDataAdapterl.InsertCommand.Parameters["@Description"].Value=""; SqlConnectionl.Open();

SqlDataAdapterl.InsertCommand.ExecuteNonQuery();

SqlConnectionl.Close();

dataSetll.Clear();

SqlDataAdapterl.Fill(dataSetll);

}

В первых двух строках программного кода параметры (@CategoryName и @Description) команды InsertCommand адаптера данных SqlDataAdapterl получают значения (в данном случае пустую строку). Затем открывается соединение с базой данных, исполняется команда InsertCommand (запись добавляется в базу данных) и соединение с базой данных закрывается. В следующих двух строках очищается от данных объект DataSetll и заполняется обновленной информацией из базы данных, путем вызова метода Fin адаптера данных. После этого добавленная запись появится в элементе отображения информации DataGrid.

Для обеспечения возможности удаления записи будет использована команда SqlDeleteCommand1 адаптера данных. Для получения доступа к тексту этой команды выделите мышью объект SqlDataAdapterl, войдите в окно его свойств и найдите строку DeleteCommand. Раскройте этот узел, щелкнув на указателе (+), найдите свойство CommandText и нажмите кнопку в этой строке. Откроется окно построителя запросов Query Builder с текстом соответствующего SQL-запроса. Измените текст этого запроса и приведите его к виду (рис. 48)

DELETE FROM Categories WHERE (CategoryID=@Original_CategoryID)

Рис 48. Формирование запроса в окне Query Builder

Из текста этого запроса видно — для того чтобы удалить запись из таблицы Categories, необходимо задать значения параметра @CategoryID этого SQL-запроса. Значение CategoryID можно получить из текущей ячейки элемента отображения данных DataGrid (при этом будет удалена та запись, которую пользователь выделил в объекте DataGrid). Это обстоятельство нужно учесть при формировании программного кода. Программный код обработки события нажатия кнопки Удалить приведен в листинге

Листинг

' Visual Basic

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click

'Удаление записи

Dim row As Intl6

Dim CategoryID As Intl6

row=DataGridl.CurrentCell.RowNumber

CategoryID=DataSetll.Categories(row).CategoryID

SqlDataAdapterl.DeleteCommand.Parameters("@Original_CategoryID").Value=CategoryID

SqlConnectionl.Open()

SqlDataAdapterl.DeleteCommand.ExecuteNonQuery()

SqlConnectionl.Close()

DataSetll.Clear()

SqlDataAdapterl.Fill(DataSetll)

End Sub

 

//C#

private void button2_Click(object sender, System.EventArgs e)

{

//Удаление записи

int row;

int CategoryiD;

row=dataGridl.CurrentCell.RowNumber;

CategoryID=dataSetll.Categories[row].CategoryID;

SqlDataAdapterl.DeleteCommand. Parameters["@Original_CategoryID"].Value=CategoryID;

SqlConnectionl.Open();

SqlDataAdapterl.DeleteCommand.ExecuteNonQuery();

SqlConnectionl.Close();

dataSetll.Clear();

SqlDataAdapterl.Fill(dataSetll);

}

В первых двух строках программного кода выполняется объявление переменных: row — номер текущей строки элемента управления DataGrid, CategoryID — идентификатор удаляемой записи (категория товара). Затем переменная row получает значение текущей строки элемента DataGrid, переменная CategoryiD получает значения идентификатора удаляемой записи (из строки с номером row таблицы Categories набора данных DataSetll). Параметр @Original_CategoryID команды DeleteCommand адаптера данных SqlDataAdapterl получает значение из переменной CategoryID. Затем открывается соединение с базой данных, исполняется команда DeleteCommand (запись удаляется из базы данных) и соединение с базой данных закрывается. В следующих двух строках очищается от данных объект DataSetll и заполняется обновленной информацией из базы данных, путем вызова метода Fill адаптера данных. После этого удаленная запись исчезает из элемента отображения информации DataGrid.

Программный код обработки события нажатия кнопки Обновить приведен в листинге

Листинг

' Visual Basic

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System. EventArgs) Handles Button3.Click

'Обновление записей

SqlDataAdapterl.Update(DataSetll)

End Sub

 

//C#

Private void button3_Click(object sender, System.EventArgs e)

{

SqlDataAdapterl.Update(dataSetll);

}

 

В этом фрагменте вызывается метод Update адаптера данных SqlDataAdapterl. При этом все обновления, сделанные пользователем передаются в исходную таблицу базы данных.

Итак, мы познакомились с основными приемами получения и обновления данных в традиционных Windows-приложениях, когда пользователи работают в рамках локальной сети. Однако на сегодняшний день большинство компаний нуждаются в распределенных приложениях, когда не только филиалы компании, но и клиентура нуждается в доступе к единым информационным массивам через сеть Интернет. Для этих целей необходимо задействовать несколько иную технологию — Web-программирование и, в частности, активные серверные страницы (Active Server Pages, ASP). B Visual Studio.NET разработка Web-приложений выполняется в той же среде, что и Windows-приложений.





Поделиться с друзьями:


Дата добавления: 2014-11-20; Просмотров: 583; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.044 сек.