- Windows forms sql запросы
- Создание формы Windows Forms для поиска данных Create a Windows Form to search data
- Предварительные требования Prerequisites
- Создание приложения Windows Forms Create the Windows Forms application
- Создание источника данных Create the data source
- Создание формы Create the form
- Добавление параметризации (функции поиска) в запрос Add parameterization (search functionality) to the query
- Тестирование приложения Test the application
- Дальнейшие действия Next steps
Windows forms sql запросы
Ранее мы рассмотрели, как удобно загружать данные в приложении Windows Forms в элемент DataGridView через DataSet. Теперь определим полнофункциональную форму, через которую мы сможем производить все стандартные CRUD операции в базе данных.
Итак, определим форму, на которой будет элемент DataGridView и три кнопки для добавления, удаления и сохранения изменений. Форма в итоге будет выглядеть примерно следующим образом:
Код формы будет выглядеть следующим образом:
Здесь для добавления объекта мы будем обращаться к хранимой процедуре sp_CreateUser, которая была добавлена в базу данных в прошлой теме.
В конструкторе данные загружаются в DataSet, первая таблица которого устанавливается в качестве источника данных для dataGridView1:
Также в конструкторе устанавливается полное выделение строки и запрет на ручное добавление новых строк:
В обработчике кнопки добавления создается новая строка, которая добавляется в таблицу объекта DataSet. И так как мы ранее установили привязку к источнику данных, то автоматически новая строка также будет добавляться и в dataGridView1:
В обработчике кнопки удаления удаляются выделенные строки в dataGridView1. Опять же в силу привязки к источнику данных будет также происходить удаление и из таблицы в DataSet:
Для обновления на не нужна никакая кнопка, так как мы можем нажать на любую ячейку таблицы (кроме заблокированного для изменения столбца Id) и изменить в ней данные. Однако сами по себе добавление новой строки, удаление строк, изменение ячеек ни как автоматически не отразятся на базе данных. И чтобы бд синхронизировалась, пользователю надо будет нажать на кнопку сохранения, обработчик которой выглядит следующим образом:
Как в прошлой теме здесь устанавливается у адаптера команда на добавление InsertCommand и затем вызывается метод Update() . В итоге мы можем добавить несколько строк, удалить, изменить, и потом один раз мы нажмем на кнопку, и все изменения будут применены к базе данных.
Создание формы Windows Forms для поиска данных Create a Windows Form to search data
Довольно распространенным сценарием приложения является отображение выбранных данных на форме. A common application scenario is to display selected data on a form. Например, вам может потребоваться отобразить заказы для определенного клиента или сведения о конкретном заказе. For example, you might want to display the orders for a specific customer or the details of a specific order. В таком сценарии пользователь вводит в форму информацию, после чего выполняется запрос, включающий в себя эти введенные пользователем данные в качестве параметра; таким образом, данные выбираются на основе параметризированного запроса. In this scenario, a user enters information into a form, and then a query is executed with the user’s input as a parameter; that is, the data is selected based on a parameterized query. Запрос возвращает только те данные, которые удовлетворяют введенным пользователем условиям. The query returns only the data that satisfies the criteria entered by the user. Это пошаговое руководство показывает, как создать запрос, возвращающий клиентов из определенного города, и изменить пользовательский интерфейс, чтобы пользователи могли ввести название города и нажать кнопку для выполнения запроса. This walkthrough shows how to create a query that returns customers in a specific city, and modify the user interface so that users can enter a city’s name and press a button to execute the query.
Использование параметризованных запросов помогает сделать приложение эффективным, так как позволяет базе данных заниматься своей непосредственной задачей — быстрой фильтрацией записей. Using parameterized queries helps make your application efficient by letting the database do the work it is best at — quickly filtering records. И наоборот, если запросить всю таблицу базы данных, передать ее по сети и использовать логику приложения для поиска записей, ваше приложение станет медленным и неэффективным. In contrast, if you request an entire database table, transfer it over the network, and then use application logic to find the records you want, your application can become slow and inefficient.
Можно добавить параметризованные запросы в любой TableAdapter (и элементы управления для приема значений параметров и выполнения запроса) с помощью диалогового окна Построитель условий поиска . You can add parameterized queries to any TableAdapter (and controls to accept parameter values and execute the query), using the Search Criteria Builder dialog box. Откройте диалоговое окно, выбрав команду Добавить запрос в меню Данные (или на любом смарт-теге адаптера таблицы). Open the dialog box by selecting the Add Query command on the Data menu (or on any TableAdapter smart tag).
В данном пошаговом руководстве представлены следующие задачи. Tasks illustrated in this walkthrough include:
Создание и Настройка источника данных в приложении с помощью мастера настройки источника данных . Creating and configuring the data source in your application with the Data Source Configuration wizard.
Задание типа сброса элементов в окне Источники данных . Setting the drop type of the items in the Data Sources window.
Создание отображающих данные элементов управления с помощью перетаскивания элементов из окна Источники данных на форму. Creating controls that display data by dragging items from the Data Sources window onto a form.
Добавление элементов управления для отображения данных на форме. Adding controls to display the data on the form.
Завершение работы с диалоговым окном Построитель условий поиска . Completing the Search Criteria Builder dialog box.
Ввод параметров в форму и выполнение параметризованного запроса. Entering parameters into the form and executing the parameterized query.
Предварительные требования Prerequisites
В этом пошаговом руководстве используется SQL Server Express LocalDB и образец базы данных Northwind. This walkthrough uses SQL Server Express LocalDB and the Northwind sample database.
Если у вас нет SQL Server Express LocalDB, установите его на странице загрузки SQL Server Expressили с помощью Visual Studio Installer. If you don’t have SQL Server Express LocalDB, install it either from the SQL Server Express download page, or through the Visual Studio Installer. В Visual Studio Installer можно установить SQL Server Express LocalDB как часть рабочей нагрузки хранения и обработки данных или как отдельный компонент. In the Visual Studio Installer, you can install SQL Server Express LocalDB as part of the Data storage and processing workload, or as an individual component.
Установите учебную базу данных Northwind, выполнив следующие действия. Install the Northwind sample database by following these steps:
В Visual Studio откройте окно Обозреватель объектов SQL Server . In Visual Studio, open the SQL Server Object Explorer window. (Обозреватель объектов SQL Server устанавливается как часть рабочей нагрузки хранения и обработки данных в Visual Studio Installer.) Разверните узел SQL Server . (SQL Server Object Explorer is installed as part of the Data storage and processing workload in the Visual Studio Installer.) Expand the SQL Server node. Щелкните правой кнопкой мыши экземпляр LocalDB и выберите создать запрос. Right-click on your LocalDB instance and select New Query.
Откроется окно редактора запросов. A query editor window opens.
Скопируйте скрипт Transact-SQL Northwind в буфер обмена. Copy the Northwind Transact-SQL script to your clipboard. Этот сценарий T-SQL создает базу данных Northwind с нуля и заполняет ее данными. This T-SQL script creates the Northwind database from scratch and populates it with data.
Вставьте скрипт T-SQL в редактор запросов, а затем нажмите кнопку выполнить . Paste the T-SQL script into the query editor, and then choose the Execute button.
По истечении короткого времени выполнение запроса завершается и создается база данных Northwind. After a short time, the query finishes running and the Northwind database is created.
Создание приложения Windows Forms Create the Windows Forms application
Создайте новый проект Windows Forms приложения для C# или Visual Basic. Create a new Windows Forms App project for either C# or Visual Basic. Присвойте проекту имя WindowsSearchForm. Name the project WindowsSearchForm.
Создание источника данных Create the data source
На этом шаге Мастер настройки источника данных используется для создания источника данных из базы данных. This step creates a data source from a database using the Data Source Configuration wizard:
Чтобы открыть окно Источники данных , в меню данные выберите команду отобразить источники данных. To open the Data Sources window, on the Data menu, click Show Data Sources.
В окне Источники данных выберите Добавить новый источник данных, чтобы запустить Мастер настройки источника данных. In the Data Sources window, select Add New Data Source to start the Data Source Configuration wizard.
На странице Выбор типа источника данных выберите элемент База данных и нажмите Далее. Select Database on the Choose a Data Source Type page, and then click Next.
На странице Выбор подключения к базе данных выполните одно из следующих действий: On the Choose your Data Connection page do one of the following:
Если подключение к учебной базе данных Northwind доступно в раскрывающемся списке, то выберите его. If a data connection to the Northwind sample database is available in the drop-down list, select it.
Выберите Новое подключение для открытия диалогового окна Добавить/изменить подключение. Select New Connection to launch the Add/Modify Connection dialog box.
Если базе данных требуется пароль, выберите параметр для включения конфиденциальных данных и нажмите кнопку Далее. If your database requires a password, select the option to include sensitive data, and then click Next.
На странице Сохранение подключения в файле конфигурации приложения нажмите кнопку Далее. On the Save connection string to the Application Configuration file page, click Next.
Разверните узел Таблицы на странице Выбор объектов базы данных. On the Choose your Database Objects page, expand the Tables node.
Выберите таблицу Клиенты и нажмите Готово. Select the Customers table, and then click Finish.
Объект NorthwindDataSet добавляется в проект, и таблица Клиенты отображается в окне Источники данных. The NorthwindDataSet is added to your project, and the Customers table appears in the Data Sources window.
Создание формы Create the form
Можно создать элементы управления с привязкой к данным, перетащив элементы из окна Источники данных на форму: You can create the data-bound controls by dragging items from the Data Sources window onto your form:
Разверните узел Customers в окне Источники данных. Expand the Customers node in the Data Sources window.
Перетащите узел Клиенты из окна Источники данных на свою форму. Drag the Customers node from the Data Sources window to your form.
На форме появляются DataGridView и полоса инструментов (BindingNavigator) для перемещения по записям. A DataGridView and a tool strip (BindingNavigator) for navigating records appear on the form. В области компонентов появляется NorthwindDataSet, CustomersTableAdapter, BindingSource и BindingNavigator. A NorthwindDataSet, CustomersTableAdapter, BindingSource, and BindingNavigator appear in the component tray.
Добавление параметризации (функции поиска) в запрос Add parameterization (search functionality) to the query
Предложение WHERE можно добавить в исходный запрос с помощью диалогового окна Построитель условий поиска : You can add a WHERE clause to the original query using the Search Criteria Builder dialog box:
Выберите элемент управления DataGridView и щелкните Добавить запрос в меню Данные. Select the DataGridView control, and then choose Add Query on the Data menu.
Введите филлбиЦити в области имя нового запроса в диалоговом окне Построитель условий поиска . Type FillByCity in the New query name area on the Search Criteria Builder dialog box.
Добавьте WHERE City = @City в запрос в области Текст запроса. Add WHERE City = @City to the query in the Query Text area.
Запрос должен выглядеть примерно следующим образом: The query should be similar to the following:
Источники данных доступа и OLE DB используют вопросительный знак («?») для обозначения параметров, поэтому предложение WHERE будет выглядеть следующим образом: WHERE City = ? . Access and OLE DB data sources use the question mark (‘?’) to denote parameters, so the WHERE clause would look like this: WHERE City = ? .
Нажмите кнопку ОК, чтобы закрыть диалоговое окно Построитель условий поиска. Click OK to close the Search Criteria Builder dialog box.
На форму добавляется FillByCityToolStrip. A FillByCityToolStrip is added to the form.
Тестирование приложения Test the application
При запуске приложения открывается форма, и она готова принять параметр в качестве входных данных: Running the application opens your form and makes it ready to take the parameter as input:
Нажмите клавишу F5 для запуска приложения. Press F5 to run the application.
Введите Лондон в текстовом поле Город и щелкните FillByCity. Type London into the City text box, and then click FillByCity.
Сетка данных заполняется клиентами, которые удовлетворяют критериям. The data grid is populated with customers that meet the criteria. В этом примере сетка данных отображает только клиентов, для которых в столбце Город задано значение Лондон. In this example, the data grid only displays customers that have a value of London in their City column.
Дальнейшие действия Next steps
В зависимости от требований приложения существуют несколько шагов, которые, возможно, потребуется выполнить после создания параметризованной формы. Depending on your application requirements, there are several steps you may want to perform after creating a parameterized form. Ниже приводится перечень рекомендаций, позволяющих улучшить полученный результат. Some enhancements you could make to this walkthrough include:
Добавление элементов управления, отображающих связанные данные. Adding controls that display related data. Дополнительные сведения см. в разделе связи в наборах данных. For more information, see Relationships in Datasets.
Изменение набора данных для добавления или удаления объектов базы данных. Editing the dataset to add or remove database objects. Дополнительные сведения см. в разделе, посвященном созданию и настройке наборов данных. For more information, see Create and configure datasets.