Пошаговое руководство. Передача данных между формами Windows Forms
Это пошаговое руководство содержит инструкции по передаче данных из одной формы в другую. Использование таблиц заказов и клиентов из одной формы "Борей" позволяет пользователям выбрать клиента, а на второй форме отображаются заказы выбранного клиента. Это пошаговое руководство описывает создание метода на одной форме, получающего данные из первой формы.
Примечание
Здесь демонстрируется всего один способ передачи данных между формами.Существуют и другие способы передать данные в форму, включая следующие: вы можете создать второй конструктор для приема данных или создать общее свойство, для которого можно задать данные из первой формы.
В данном пошаговом руководстве представлены следующие задачи.
Создание нового проекта Приложение Windows.
Создание и настройка набора данных с помощью мастер настройки источника данных.
Выбор элемента управления, создаваемого на форме при перетаскивании элементов из окна Источники данных. Для получения дополнительной информации см. Практическое руководство. Установка элемента управления, создаваемого при перетаскивании из окна "Источники данных".
Создание элемента управления с привязкой к данным с помощью перетаскивания элементов из окна Источники данных на форму.
Создание второй формы с сеткой для отображения данных.
Создание запроса адаптера таблицы для получения заказов определенного клиента.
Передача данных между формами.
Обязательные компоненты
Для выполнения данного пошагового руководства требуется:
- Доступ к примеру базы данных "Борей". Для получения дополнительной информации см. Практическое руководство. Установка образцов баз данных.
Создание приложения Windows
Порядок создания нового проекта Windows
Перейдите в меню Файл и создайте новый проект.
Присвойте проекту имя PassingDataBetweenForms.
Выберите Приложение Windows Forms и нажмите кнопку ОК. Для получения дополнительной информации см. Разработка клиентских приложений с использованием .NET Framework.
Создается проект PassingDataBetweenForms, который добавляется в Обозреватель решений.
Создание источника данных
Создание источника данных
В меню Данные выберите команду Показать источники данных.
В окне Источники данных выберите Добавить новый источник данных, чтобы запустить Мастер настройки источника данных.
На странице Выбор типа источника данных выберите элемент База данных и нажмите Далее.
На странице Выбор модели базы данных выберите Набор данных и нажмите кнопку Далее.
На странице Выбор подключения к базе данных выполните одно из следующих действий.
Если подключение к учебной базе данных Northwind доступно в раскрывающемся списке, то выберите его.
-или-
Выберите Новое подключение для открытия диалогового окна Добавить/изменить подключение.
Если базе данных требуется пароль и выбран параметр для включения конфиденциальных данных, выберите параметр и щелкните Далее.
На странице Сохранение подключения в файле конфигурации приложения нажмите кнопку Далее.
Разверните узел Таблицы на странице Выбор объектов базы данных.
Выберите таблицы Customers и Orders и нажмите Готово.
NorthwindDataSet добавляется в проект, и таблицы Клиенты и "Заказы" отображаются в окне Источники данных.
Создание первой формы (Form1)
Вы можете создать сетку с привязкой к данным (элемент управления DataGridView) с помощью перетаскивания узла Клиенты из окна Источники данных на форму.
Создание сетки с привязкой к данным на форме
Перетащите главный узел Клиенты из окна Источники данных на Form1.
На форме Form1 появляется DataGridView и панель инструментов (BindingNavigator) для перемещения по записям. В области компонентов появляется NorthwindDataSet, CustomersTableAdapter, BindingSource и BindingNavigator.
Создание второй формы (Form2)
Порядок создания второй формы, предназначенной для передачи данных
В меню Проект выберите пункт Добавить форму Windows.
Оставьте имя по умолчанию Form2 и щелкните Добавить.
Перетащите главный узел Заказы из окна Источники данных на Form2.
На форме Form2 появляется DataGridView и панель инструментов (BindingNavigator) для перемещения по записям. В области компонентов появляется NorthwindDataSet, CustomersTableAdapter, BindingSource и BindingNavigator.
Удалите OrdersBindingNavigator из области компонентов.
OrdersBindingNavigator исчезает из Form2.
Добавление запроса адаптера таблицы на форму Form2 для загрузки заказов выбранного клиента на форме Form1
Порядок создания запроса адаптера таблицы
Дважды щелкните файл NorthwindDataSet.xsd в Обозревателе решений.
Щелкните правой кнопкой мыши элемент OrdersTableAdapter и выберите пункт Добавить запрос.
Оставьте параметр по умолчанию Использовать инструкции SQL и нажмите кнопку Далее.
Оставьте параметр по умолчанию Инструкция SELECT, возвращающая строки и нажмите кнопку Далее.
Добавьте в запрос предложение WHERE, чтобы возвратить Orders на основании CustomerID. Запрос должен выглядеть примерно следующим образом:
SELECT OrderID, CustomerID, EmployeeID, OrderDate, RequiredDate, ShippedDate, ShipVia, Freight, ShipName, ShipAddress, ShipCity, ShipRegion, ShipPostalCode, ShipCountry FROM Orders WHERE CustomerID = @CustomerID
Примечание
Проверьте правильность синтаксиса параметров для своей базы данных.Например, в Microsoft Access предложение WHERE должно выглядеть следующим образом: WHERE CustomerID = ?.
Нажмите кнопку Далее.
Для параметра Имя метода Заполнить таблицу данных (DataTable) введите FillByCustomerID.
Снимите флажок Вернуть таблицу данных (DataTable) и нажмите кнопку Далее.
Нажмите кнопку Готово.
Создание метода на форме Form2 для передачи данных
Порядок создания метода, предназначенного для передачи данных
Щелкните правой кнопкой мыши Form2 и выберите пункт Просмотреть код, чтобы открыть Form2 в Редакторе кода.
Добавьте следующий код в Form2 после метода Form2_Load:
Friend Sub LoadOrders(ByVal CustomerID As String) OrdersTableAdapter.FillByCustomerID(NorthwindDataSet.Orders, CustomerID) End Sub
internal void LoadOrders(String CustomerID) { ordersTableAdapter.FillByCustomerID(northwindDataSet.Orders, CustomerID); }
Создание метода на форме Form1 для передачи данных и отображения формы Form2
Порядок создания метода, предназначенного для передачи данных в Form2
В Form1 щелкните правой кнопкой мыши сетку данных клиентов и выберите пункт Свойства.
В окне Свойства выберите События.
Дважды щелкните событие CellDoubleClick.
Откроется окно редактора кода.
Обновите определение метода в соответствии со следующим примером:
Private Sub CustomersDataGridView_DoubleClick() Handles CustomersDataGridView.DoubleClick Dim SelectedRowView As Data.DataRowView Dim SelectedRow As NorthwindDataSet.CustomersRow SelectedRowView = CType(CustomersBindingSource.Current, System.Data.DataRowView) SelectedRow = CType(SelectedRowView.Row, NorthwindDataSet.CustomersRow) Dim OrdersForm As New Form2 OrdersForm.LoadOrders(SelectedRow.CustomerID) OrdersForm.Show() End Sub
private void customersDataGridView_DoubleClick(object sender, EventArgs e) { System.Data.DataRowView SelectedRowView; NorthwindDataSet.CustomersRow SelectedRow; SelectedRowView = (System.Data.DataRowView)customersBindingSource.Current; SelectedRow = (NorthwindDataSet.CustomersRow)SelectedRowView.Row; Form2 OrdersForm = new Form2(); OrdersForm.LoadOrders(SelectedRow.CustomerID); OrdersForm.Show(); }
Запуск приложения
Запуск приложения
Нажмите клавишу F5 для запуска приложения.
Дважды щелкните запись клиента в форме Form1, чтобы открыть Form2 с заказами этого клиента.
Следующие действия
В зависимости от требований приложения существуют несколько шагов, которые, возможно, потребуется выполнить после передачи данных между формами. Ниже приводится перечень рекомендаций, позволяющих улучшить полученный результат.
Изменение набора данных для добавления или удаления объектов базы данных. Для получения дополнительной информации см. Практическое руководство. Редактирование набора данных.
Добавление функциональности для сохранения данных в базу данных. Для получения дополнительной информации см. Практическое руководство. Сохранение изменений набора данных в базе данных.
См. также
Основные понятия
Привязка элементов управления Windows Forms к данным в Visual Studio
Общие сведения об источниках данных
Общие сведения об адаптере таблиц
Подготовка приложения к получению данных
Привязка элементов управления к данным в Visual Studio
Редактирование данных в приложении