Windows forms работа с sql

Windows forms работа с sql

Ранее мы рассмотрели, как удобно загружать данные в приложении Windows Forms в элемент DataGridView через DataSet. Теперь определим полнофункциональную форму, через которую мы сможем производить все стандартные CRUD операции в базе данных.

Итак, определим форму, на которой будет элемент DataGridView и три кнопки для добавления, удаления и сохранения изменений. Форма в итоге будет выглядеть примерно следующим образом:

Код формы будет выглядеть следующим образом:

Здесь для добавления объекта мы будем обращаться к хранимой процедуре sp_CreateUser, которая была добавлена в базу данных в прошлой теме.

В конструкторе данные загружаются в DataSet, первая таблица которого устанавливается в качестве источника данных для dataGridView1:

Также в конструкторе устанавливается полное выделение строки и запрет на ручное добавление новых строк:

В обработчике кнопки добавления создается новая строка, которая добавляется в таблицу объекта DataSet. И так как мы ранее установили привязку к источнику данных, то автоматически новая строка также будет добавляться и в dataGridView1:

В обработчике кнопки удаления удаляются выделенные строки в dataGridView1. Опять же в силу привязки к источнику данных будет также происходить удаление и из таблицы в DataSet:

Для обновления на не нужна никакая кнопка, так как мы можем нажать на любую ячейку таблицы (кроме заблокированного для изменения столбца Id) и изменить в ней данные. Однако сами по себе добавление новой строки, удаление строк, изменение ячеек ни как автоматически не отразятся на базе данных. И чтобы бд синхронизировалась, пользователю надо будет нажать на кнопку сохранения, обработчик которой выглядит следующим образом:

Как в прошлой теме здесь устанавливается у адаптера команда на добавление InsertCommand и затем вызывается метод Update() . В итоге мы можем добавить несколько строк, удалить, изменить, и потом один раз мы нажмем на кнопку, и все изменения будут применены к базе данных.

Работа с базами данных в Windows Forms с использованием языка программирования C++

Как известно, начиная с версии 2008, работа с базами данных (БД) в Windows Forms средствами Microsoft Visual C++ (VC++) невозможна. Однако это не совсем так.

Начиная с версии 2008, стала недоступна работа с БД с помощью уже привычного графического интерфейса. То есть, для работы с ними нельзя создать и настроить, а, следовательно, и использовать, не визуальные элементы управления DataSet, BindingSource и TableAdapter. В то же время возможно работы с БД при помощи «обычных» классов ADO.NET полностью сохранилась.

Для реализации взаимодействия с БД служат «обычные» классы OleDbConnection, OleDbCommand и OleDbDataReader. Но, в виду того, что в Windows Forms используется управляемый код с привязкой C++/CLI, их использование имеет некоторые особенности.

Рассмотрим пример. Есть БД Microsoft Office Access, которая содержит список авторов книг в таблице Author.

Создадим простое приложение, которое будет загружать данные из этой таблицы (надписи элементов управления, включая заголовки столбцов DataGridView, предварительно настроены с помощью визуального конструктора).

Данные будем загружать в элемент управления DataGridView при нажатии на кнопку «Получить данные».

Создадим в обработчике события нажатия этой кнопки подключение к БД.

SQL в Windows Forms

Windows Forms и Microsoft SQL
Подскажите пожалуйста_ Какую книгу мне читать, что-бы хорошо понять «связывание» и «работу Windows.

Подскажите касаемо Windows Forms и MS SQL
Всем привет, выручите пожалуйста советом. Есть БД в MS SQL. Хочу создать UI приложение используя.

Будут ли работать приложения написанные на Windows Forms на Windows 8
Будут ли работать приложения написанные на Windows Forms на Windows 8? И собсно еще вопрос, вы.

Как переделать Windows Forms приложение в Windows Service с UI?
Здравствуйте, уважаемые посетители форума! Вопрос такой. У меня есть приложение C# Win Forms с.

Тематические курсы и обучение профессиям онлайн
Профессия‌ С#-разработчик‌ (Skillbox)
Архитектор ПО (Skillbox)
Профессия Тестировщик (Skillbox)

Если в таблице на одного пользователя много записей, на каждую подписку, и надо найти сумму, то надо составить запрос с группировкой ,GROUP BY

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Перенос приложения Windows Forms в Windows Market
Как с минимальными затратами времени перенести десктопное приложение на магазин Windows ? Есть ли.

Соединение с SQL Server в С# (Windows forms)
Здравствуйте. Имею дело с разработкой собственной БД (и приложения для него) первый раз = просьба.

Читайте также:  Ssh mount from windows

Выполнение хранимой процедуры sql в windows forms C#
Здравствуйте ! помогите люди добрые:) подскажите как выполнить хранимую процедуру sql в windows.

INSERT INTO по внешним ключам SQL C# Windows Forms
как создать запрос insert into ,update , чтобы добавить данные в 3 таблицы связанные внешним ключём.

Соединение с SQL Server в С# (Windows forms)

Здравствуйте.
Имею дело с разработкой собственной БД (и приложения для него) первый раз = просьба не судить строго.
Проблема возникла в самом начале написания приложения для работы с БД, а именно — не могу банально установить соединение.

Данные [имя сервера \ имя юзера и т.д.] — приведены на фото в конце поста.
Вопрос — какой должна быть строка для установления соединения?

Так что именно я должен написать в строку, которая содержит всю инфу для подключения [user;database и т.д.]?
Перепробовал все варианты — вообще понять ничего не могу.
Ребят, помогите пожалуйста правильно подключиться к БД, потому что срок сдачи уже подходит.
Кто-то пишет так.

Соединение с sql server
У меня не так много опыта работы с БД, в процессе столкнулась со следующими проблемами: 1) Не.

Пропало соединение с SQL Server
Всем привет! ни с того ни с сего не происходит соединение с SQL Server, приложение ASP.NET MVC не.

SQL Server не проходит соединение с сервером
Установила sql. Все работало хорошо и с сервером соединялось, но стоило перезагрузить ноутбук и при.

MS SQL Server 2008 R2. Как настроить удалённое соединение?
И снова всем доброго времени суток!) Опять у меня возник вопрос по MS SQL Server 2008 R2. Как.

Anonymous, для начала осознайте, что MSSQL и MySQL — разные СУБД.

Добавлено через 3 минуты
Как осознаете и исправите код, можете формировать строку подключения.

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

1С для SQL Server — невозможно устьановить соединение с сервером БД.
1С установлена на рабочей станции с Win95. При запуске 1С запрашивает пароль и имя пользователя.

Как настроить соединение с сервером Microsoft SQL server 2012
Объясните доходчиво, как настроить соединение с сервером. При запуске нет ни одного сервера в.

Установка SQL Server 2000 на Windows Server 2003 Web Edition
Не могу установить SQL Server 2000 на Windows Server 2003 Web Edition. Если запускаю установку из.

Установка MS SQL Server Desktop Engine на Windows Server 2008
MS sql server desktop engine, при установке на windows server 2008 пишет «a strong sa password is.

BestProg

Пример программы демонстрации основных операций над данными таблицы базы данных MS SQL Server ( SQLEXPRESS )

Содержание

Поиск на других ресурсах:

Условие задачи

Разработать приложение, которое демонстрирует основные операции над данными в базе данных типа MS SQL Server , а именно:

  • подключение базы данных к приложению;
  • отображение таблиц базы данных на форме;
  • добавление новой записи в базу данных;
  • редактирование записи;
  • удаление записи.

За основу взята база данных Education.dbo , процесс создания которой подробно описывается здесь.

На рисунке 1 отображена структура базы данных Education.dbo . Как видно из рисунка, база данных называется:

Здесь « sasha-pc » – идентификатор компьютера в сети, « sqlexpress » – название сервера баз данных, « Education.dbo » – название базы данных.

Рис. 1. База данных Education.dbo

База данных содержит две таблицы: Student и Session. Структура таблиц следующая.

Выполнение

1. Создать новый проект в MS Visual Studio как Windows Forms Application .

Создать новый проект типа Windows Forms Application . Пример создания нового проекта подробно описывается здесь.

2. Создание нового представления ( view ) для отображения данных таблицы Student .

Чтобы отображать данные таблиц базы данных, можно использовать разные способы. Один из них – это создание представлений ( views ), которые формируются средствами MS Visual Studio .

В нашем случае данные таблиц будут отображаться на форме в элементе управления типа DataGridView . После создания представлений, очень удобно их связать с элементами DataGridView .

Для создания представления, нужно вызвать команду « Add New View » из контекстного меню, которое вызывается кликом правой кнопкой мышки на элементе « Views » базы данных Education.dbo (рисунок 2).

Рис. 2. Вызов команды добавления нового представления

В результате откроется окно « Add Table » (рисунок 3). В окне нужно выбрать таблицы, которые добавляются к представлению.

Рис. 3. Выбор таблиц, на которых будет базироваться новое представление

В нашем случае выбираем таблицу Student и подтверждаем свой выбор кликом на кнопке Add . Следующим шагом нужно закрыть окно выбором кнопки Close .

Читайте также:  Невозможно удалить пин код windows 10

После выполненных действий будет сформировано окно, в котором нужно выбрать поля, которые должны отображаться в представлении (на форме). Выбираем все поля (рисунок 4).

При выборе полей, в верхней части рабочей области отображаются поля таблицы Student . С помощью «мышки» можно выбирать нужные поля для представления.

Соответственно, в средней области окна отображаются названия выбранных полей, таблица в которой они есть (см. рис. 4), возможность сортировки, фильтрование и прочее.

В нижней части области отображается соответствующий текст SQL -запроса, который используется для создания представления.

Рис. 4. Выбор полей таблицы Student для их отображения в представлении

После выбора команды

откроется окно, в котором нужно указать имя представления. Задаем имя « View Student » (рисунок 5).

Рис. 5. Указание имени для представления

После выполненных действий, окно представления будет иметь вид как показано на рисунке 6.

Рис. 6. Представление View Student в базе данных

Теперь можно размещать элемент управления DataGridView и связывать его с представлением.

3. Размещение элемента управления DataGridView и настройка связи с базой данных.

Перед размещением элемента управления DataGridView нужно перейти в режим проектирования формы « Form1.cs [Design] «.

Элемент DataGridView представляет собой таблицу, которая может отображать данные. Данный элемент управления размещается в панели ToolBox . Сначала немного корректируем размеры формы, а потом размещаем на ней элемент управления DataGridView (рисунок 7). В результате будет создан экземпляр объекта с именем dataGridView1 по умолчанию.

Рис. 7. Элемент управления DataGridView и окно выбора источника данных

После размещения элемента управления типа DataGridView на форме в правом верхнем углу можно выбрать настройку источника данных. Соответственно откроется окно « DataGridView Tasks «. В этом окне нужно выбрать сплывающее меню « Choose Data Source «.

В открывшемся меню выбирается команда « Add Project Data Source… » (рис. 7). После этого открывается окно мастера, в котором последовательно выбирается источник данных.

На рисунке 8 показано окно « Data Source Configuration Wizard «, в котором выбирается тип источника данных. В нашем случае устанавливаем « Database «.

Рис. 8. Выбор типа источника данных

В следующем окне (Рисунок 9) выбирается модель источника данных. Нужно выбрать DataSet .

Рис. 9. Выбор модели источника данных

В окне, изображенном на рисунке 10 , нужно задать соединение данных, которое нужно использовать для подключения к базе данных. В нашем случае нужно выбрать базу данных « sasha-pc\sqlexpress\Education.dbo «.

Рис. 10. Выбор соединения данных

В следующем окне (рисунок 11) предлагается сохранить строку соединения Connection String в конфигурационный файл приложения. Оставляем все как есть и переходим к следующему окну.

Рис. 11. Предложение сохранения строки соединения с базой данных Connection String в конфигурационном файле приложения

После создания соединения с базой данных отображается множество объектов базы данных (рисунок 12). В нашем случае нужно выбрать представление « View Student » и все поля из него. Отмеченные поля будут отображаться в компоненте типа DataGridView .

Рис. 12. Выбор объектов базы данных, которые нужно отображать в DataGridView

После выбора кнопки Finish будут отображены выбранные объекты (представление View Student ) базы данных Education.dbo (рисунок 13).

Рис. 13. Элемент управления типа DataGridView с выбранными полями представления View Student

Подобным образом можно настроить представления, которые содержат любые поля из любых таблиц базы данных. Также в одном представлении могут отображаться поля из разных таблиц.

4. Настройка вида элемента управления типа DataGridView .

Если запустить приложение на выполнение, то будут получены данные представления View Student , которое отвечает таблице Student базы данных (рисунок 14).

Рис. 14. Запуск приложения на выполнение

Как видно из рисунка 14, данные в таблице dataGridView1 отображаются нормально, но оформление можно скорректировать.

Элемент управления типа DataGridView допускает корректирование вида полей, которые отображаются.

Для вызова команд редактирования полей, достаточно вызвать контекстное меню кликом правой кнопкой мышки на элементе управления dataGridView1 .

В меню существуют различные полезные команды, которые разрешают управлять видом и работой DataGridView :

  • команда блокирования элемента управления ( Lock Controls );
  • команда редактирования полей, которые отображаются в представлении ( Edit Columns… );
  • команда добавления новых полей, например вычисляемых ( Add Column ).

В нашем случае нужно выбрать команду « Edit Columns… » (рисунок 15).

Рис. 15. Команда « Edit Columns… » из контекстного меню

В результате откроется окно « Edit Columns «, в котором можно настроить вид полей представления по собственному вкусу (рисунок 16).

Рис. 16. Окно настройки вида полей в представлении « View Student «

Читайте также:  Msvr120 dll windows 10

В окне на рисунке 16 для любого поля можно настроить название, выравнивание, ширину, возможность редактирования данных и т.п.

5. Строка Connection String

Для того, чтобы в базу данных вносить изменения, нужно получить строку соединения с базой данных Connection String .

Существуют разные способы получения строки соединения с базой данных. Один из них базируется на чтении этой строки в окне Properties базы данных Education.dbo (рис. 17).

Рис. 17. Определение строки Connection String

Для сохранности строки в программе вводится внутренняя переменная типа string . С помощью буфера обмена копируем строку Connection String в описанную переменную типа string .

В тексте файла « Form1.cs » в начале описания класса Form1 надо описать переменную:

На данный момент текст класса Form1 следующий:

6. Создание новой формы для демонстрации команд манипулирования данными.

Для того, чтобы иметь возможность обрабатывать данные текущей записи нужно создать новую форму. Процесс создания новой формы в MS Visual Studio — C# подробно описывается здесь .

Добавление новой формы осуществляется командой:

В открывшемся окне « New Item » нужно выбрать элемент « Windows Form «.

Имя файла новой формы оставляем по умолчанию « Form2.cs «.

На рисунке 18 изображен вид новой формы.

Размещаем на форме элементы управления следующих типов:

  • два элемента управления типа Button (кнопки OK и Cancel ). Соответственно будет получено два объекта с именами button1 и button2 ;
  • четыре элемента управления типа Label для создания информационных сообщений;
  • четыре элемента управления типа TextBox для ввода данных в полях Num_book , Name , Group , Year .

Нужно настроить следующие свойства элементов управления:

  • в элементе управления button1 свойство Text = « OK «;
  • в элементе управления button2 свойство Text = « Cancel «;
  • в элементе управления button1 свойство DialogResult = « OK «;
  • в элементе управления button2 свойство DialogResult = « Cancel «;
  • в элементе управления label1 свойство Text = « Num_book «;
  • в элементе управления label2 свойство Text = « Name «;
  • в элементе управления label3 свойство Text = « Group «;
  • в элементе управления label4 свойство Text = « Year «.

Также настраиваем видимость элементов управления типа TextBox . Для этого во всех элементах управления textBox1 , textBox2 , textBox3 , textBox4 значение свойства Modifiers = « public «.

Рис. 18. Вид новосозданной формы

7. Добавление кнопок вызова команд манипулирования данными таблицы Student .

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

На главную форму приложения Form1 добавляем три кнопки ( Button ). Автоматически будет создано три переменных-объекта с именами button1 , button2 , button3 . В каждой из этих кнопок вносим следующие настройки (окно Properties ):

  • в кнопке button1 свойство Text = « Insert … » (вставить запись);
  • в кнопке button2 свойство Text = « Edit … » (изменить запись);
  • в кнопке button3 свойство Text = « Delete «.

В результате внесенных изменений главная форма будет иметь вид как показано на рисунке 19.

Рис. 19. Главная форма приложения

8. Программирование события клика на кнопке « Insert… «.

Обработчик события клика на кнопке « Insert… » имеет вид:

Сначала вызывается форма Form2 . После получения результата « OK » (нажатие соответствующей кнопки), в форме Form2 заполненные поля в элементах типа TextBox включаются в строку SQL -запроса. SQL -запрос добавления новой строки имеет вид:

где value1 отвечает номеру зачетной книжки; value2 – фамилия студента; value3 – группа, в которой учится студент; value4 – год вступления.

Строка соединения с базой данных Connection String описывается в переменной conn_string (см. п. 5). Объект класса SqlConnection осуществляет соединение приложения с источниками данных. Кроме того, класс Connection решает задачи аутентификации пользователей, работу с сетями, идентификацию баз данных, буферизацию соединений и обработку транзакций.

Команда на языке SQL , добавляющая запись к таблице, инкапсулирована в классе SqlCommand . Конструктор класса SqlCommand принимает два параметра: строку запроса на языке SQL (переменная cmd_text ) и объект класса SqlConnection .

Метод ExecuteNonQuery() реализован в интерфейсе IDBCommand . Метод реализует SQL -команды, которые не возвращают данные. К таким командам относятся команды INSERT , DELETE , UPDATE а также хранимые процедуры, которые не возвращают данных. Метод ExecuteNonQuery() возвращает количество задействованных ним записей.

9. Программирование события клика на кнопке « Edit… «.

Обработчик события клика на кнопке « Edit… » имеет вид:

В этом обработчике выполняется SQL -команда UPDATE , которая изменяет текущее значение активной записи.

10. Программирование события клика на кнопке « Delete «.

Обработчик события клика на кнопке « Delete » имеет вид:

В этом обработчике выполняется SQL -команда удаления записи DELETE .

Оцените статью