Пошаговое руководство. Передача данных между формами Windows Forms
Данное пошаговое руководство содержит пошаговые инструкции по передаче данных из одной формы в другую. С помощью таблиц Customers и Orders базы данных "Борей" одна форма предоставляет возможность пользователям выбрать клиента, а вторая — отобразить заказы выбранного клиента. В данном пошаговом руководстве показано, как создать метод в этой форме, который получает данные из первой формы.
Примечание
Данное пошаговое руководство демонстрирует только один способ передачи данных между формами.Существуют другие способы передачи данных в форму, включая следующие: можно создать второй конструктор для получения данных или можно создать открытое свойство, в качестве значения которого могут быть установлены данные из первой формы.
В этом пошаговом руководстве демонстрируется выполнение следующих задач.
Создание нового проекта Приложение Windows.
Создание и настройка набора данных с помощью мастер настройки источника данных.
Выбор элемента управления, создаваемого на форме при перетаскивании элементов из окна Источники данных. Дополнительные сведения см. в разделе Практическое руководство. Установка элемента управления, создаваемого при перетаскивании из окна "Источники данных".
Создание элемента управления с привязкой к данным при помощи перетаскивания элементов из окна Источники данных на форму.
Создание второй формы с сеткой для отображения данных.
Создание запроса объекта TableAdapter для выборки заказов для конкретного клиента.
Передача данных между формами.
Обязательные компоненты
Для выполнения этого пошагового руководства потребуется следующее.
- Доступ к образцу базы данных "Борей". Дополнительные сведения см. в разделе Практическое руководство. Установка образцов баз данных.
Создание приложения Windows
Чтобы создать новый проект Windows
Из меню Файл создайте новый проект.
Назовите проект PassingDataBetweenForms.
Выберите Приложение Windows и щелкните OK. Дополнительные сведения см. в разделе Создание приложения для Windows.
Проект PassingDataBetweenForms будет создан и добавлен в Обозреватель решений.
Создание источника данных
Для создания источника данных
В меню Данные выберите команду Показать источники данных.
Чтобы запустить Мастер настройки источника данных, выберите элемент Добавить новый источник данных в окне Источники данных.
На странице Выбор типа источника данных выберите элемент База данных и нажмите Далее.
На странице Выбор модели базы данных убедитесь, что задан Набор данных, и нажмите кнопку Далее.
На странице Выбор подключения базы данных выполните одно из следующих действий:
Если подключение к образцу базы данных "Борей" доступно в раскрывающемся списке, то выберите его.
– или –
Выберите Новое подключение для открытия диалогового окна Добавить/изменить подключение. Дополнительные сведения см. в разделе Диалоговое окно "Добавить/Изменить подключение" (вкладка "Общие").
Если базе данных требуется пароль и доступен параметр включения конфиденциальных данных, то выберите этот параметр и щелкните Далее.
Щелкните Далее на странице Сохранение подключения в файле конфигурации приложения.
Разверните узел Таблицы на странице Выбор объектов базы данных.
Выберите таблицы Customers и Orders и нажмите Готово.
NorthwindDataSet добавляется в проект, и таблицы Клиенты и Заказы отображаются в окне Источники данных.
Создание первой формы (Form1)
Можно создать сетку с привязкой к данным (элемент управления DataGridView) путем перетаскивания узла Customers из окна Источники данных на форму.
Чтобы создать на форме сетку с привязкой к данных
Перетащите главный узел Customers из окна Источники данных на Form1.
DataGridView и панель инструментов (BindingNavigator) для навигации по записям отобразятся на Form1. В области компонентов появляются NorthwindDataSet, CustomersTableAdapter, BindingSource и BindingNavigator.
Создание второй формы (Form2)
Чтобы создать вторую форму для передачи ей данных
В меню Проект выберите Добавить форму Windows.
Оставьте имя Form2 по умолчанию и нажмите кнопку Добавить.
Перетащите главный узел Orders из окна Источники данных на форму Form2.
DataGridView и панель инструментов (BindingNavigator) для навигации по записям отобразятся на Form2. В области компонентов появляются NorthwindDataSet, CustomersTableAdapter, BindingSource и BindingNavigator.
Удалите OrdersBindingNavigator из области компонентов.
OrdersBindingNavigator исчезнет из Form2.
Добавление запроса объекта TableAdapter на Form2 для загрузки заказов для клиента, выбранного на форме Form1
Чтобы создать запрос объекта TableAdapter
Дважды щелкните на файле 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
Другие ресурсы
Пошаговые руководства работы с данными
Подключение к данным в Visual Studio
Подготовка приложения к получению данных
Редактирование данных в приложении
Журнал изменений
Дата |
Журнал |
Причина |
---|---|---|
Март 2011 |
Устранены ошибки в примере кода. |
Обратная связь от клиента. |