Как работать с бд в visual studio

Обновлено: 07.07.2024

В данной теме показано решение задачи создания базы данных типа SQL Server с помощью MS Visual Studio . Рассматриваются следующие вопросы:

  • работа с окном Server Explorer в MS Visual Studio ;
  • создание локальной базы данных типа SQL Server Database ;
  • создание таблиц в базе данных;
  • редактирование структур таблиц;
  • связывание таблиц базы данных между собой;
  • внесение данных в таблицы средствами MS Visual Studio .

Содержание

  • Условие задачи
  • Выполнение
    • 1. Загрузить MS Visual Studio .
    • 2. Активировать окно Server Explorer .
    • 3. Создание базы данных “ Education ”.
    • 4. Объекты базы данных Education .
    • 5. Создание таблицы Student .
    • 6. Создание таблицы Session .
    • 7. Редактирование структуры таблиц.
    • 8. Установление связей между таблицами.
    • 9. Ввод данных в таблицы.

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

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

    Используя средства MS Visual Studio создать базу данных типа MS SQL Server с именем Education. База данных содержит две таблицы Student и Session. Таблицы между собой связаны по некоторыму полю.

    Структура первой таблицы «Student».

    02_02_00_014_table01_r

    Структура второй таблицы “ Session ”.

    02_02_00_014_table02_r

    Выполнение

    1. Загрузить MS Visual Studio .
    2. Активировать окно Server Explorer .

    Для работы с базами данных корпорация Microsoft предлагает облегченный сервер баз данных Microsoft SQL Server . Существуют разные версии Microsoft SQL Server , например: Microsoft SQL Server 2005 , Microsoft SQL Server 2008 , Microsoft SQL Server 2014 и прочие версии.

    Этот сервер отлично подходит для работы с базами данных. Он бесплатен и имеет графический интерфейс для создания и администрирования баз данных с помощью SQL Server Management Tool .

    Прежде всего, перед созданием базы данных, нужно активировать утилиту Server Explorer . Для этого, в MS Visual Studio нужно вызвать (рис. 1)

    База данных Server Explorer команда

    Рис. 1. Вызов Server Explorer

    После вызова окно Server Explorer будет иметь приблизительный вид, как показано на рисунке 2.

    База данных окно Server Explorer

    Рис. 2. Окно Server Explorer

    3. Создание базы данных “Education”.

    база данных SQL Server команда

    Рис. 3. Вызов команды создания базы данных SQL Server

    В результате откроется окно « Create New SQL Server Database » (рис. 4).

    В окне (в поле «Server Name») указывается имя локального сервера, установленного на вашем компьютере. В нашем случае это имя “ SQLEXPRESS ”.

    В поле « New database name: » указывается имя создаваемой базы данных. В нашем случае это имя Education.

    Опцию Use Windows Autentification нужно оставить без изменений и нажать кнопку OK .

    SQL Server 2008 Express команда создание

    Рис. 4. Создание новой базы данных SQL Server 2008 Express с помощью MS Visual Studio 2010

    После выполненных действий, окно Server Explorer примет вид, как показано на рисунке 5. Как видно из рисунка 5, в список имеющихся баз данных добавлена база данных Education с именем

    Server Explorer база данных рисунок

    Рис. 5. Окно Server Explorer после добавления базы данных Education

    4. Объекты базы данных Education.

    Если развернуть базу данных Education (знак « + »), то можно увидеть список из следующих основных объектов:

    • Database Diagrams – диаграммы базы данных. Диаграммы показывают связи между таблицами базы данных, отношения между полями разных таблиц и т.п.;
    • Tables – таблицы, в которых помещаются данные базы данных;
    • Views – представления. Отличие между представлениями и таблицами состоит в том, что таблицы баз данных содержат данные, а представления данных не содержат их, а содержимое выбирается из других таблиц или представлений;
    • Stored procedures – хранимые процедуры. Они представляют собою группу связанных операторов на языке SQL, что обеспечивает дополнительную гибкость при работе с базой данных.
    5. Создание таблицы Student.

    На данный момент база данных Education абсолютно пустая и не содержит никаких объектов (таблиц, сохраненных процедур, представлений и т.д.).

    Чтобы создать таблицу, нужно вызвать контекстное меню (клик правой кнопкой мышки) и выбрать команду “ Add New Table ” (рисунок 6).

    база данных таблица создать

    Рис. 6. Команда добавления новой таблицы

    Существует и другой вариант добавления таблицы базы данных с помощью команд меню Data:

     таблица создание рисунок

    Рис. 7. Альтернативный вариант добавления новой таблицы

    В результате откроется окно добавления таблицы, которое содержит три столбца (рисунок 8). В первом столбце “Column Name” нужно ввести название соответствующего поля таблицы базы данных. Во втором столбце “Data Type” нужно ввести тип данных этого поля. В третьем столбце “ Allow Nulls ”указывается опция о возможности отсутствия данных в поле.

    SQL Server таблица создание

    Рис. 8. Окно создания новой таблицы

    С помощью редактора таблиц нужно сформировать таблицу Student как изображено на рисунке 9. Имя таблицы нужно задать при ее закрытии.

    В редакторе таблиц можно задавать свойства полей в окне Column Properties. Для того, чтобы задать длину строки (nvchar) в символах, в окне Column Properties есть свойство Length. По умолчанию значения этого свойства равно 10.

    SQL Server таблица проектирование рисунок

    Рис. 9. Таблица Student

    Следующим шагом нужно задать ключевое поле. Это осуществляется вызовом команды “ Set Primary Key ” из контекстного меню поля Num_book. С помощью ключевого поля будут установлены связи между таблицами. В нашем случае ключевым полем есть номер зачетной книжки.

    таблица SQL Server ключевое поле

    Рис. 10. Задание ключевого поля

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

    SQL Server таблица формирование

    Рис. 11. Таблица Student после окончательного формирования

    Теперь можно закрыть таблицу. В окне сохранения таблицы нужно задать ее имя – Student (рис. 12).

    таблица имя SQL Server ввод

    Рис. 12. Ввод имени таблицы Student

    6. Создание таблицы Session.

    По образцу создания таблицы Student создается таблица Session.

    На рисунке 13 изображен вид таблицы Session после окончательного формирования. Первичный ключ ( Primary Key ) устанавливается в поле Num_book. Имя таблицы задается Session.

    таблица формирование SQL Server

    Рис. 13. Таблица Session

    После выполненных действий, в окне Server Explorer будут отображаться две таблицы Student и Session.

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

    7. Редактирование структуры таблиц.

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

    Для того, чтобы вносить изменения в таблицы базы данных в MS Visual Studio, сначала нужно снять опцию “Prevent Saving changes that require table re-creation ” как показано на рисунке 14. Иначе, MS Visual Studio будет блокировать внесения изменений в ранее созданную таблицу. Окно Options, показанное на рисунке 14 вызывается из меню Tools в такой последовательности:

    SQL Server изменения опция

    Рис. 14. Опция “ Prevent Saving changes that require table re-creation ”

    После настройки можно изменять структуру таблицы. Для этого используется команда “ Open Table Definition ” (рисунок 15) из контекстного меню, которая вызывается для выбранной таблицы (правый клик мышкой).

    SQL Server команда рисунок

    Рис. 15. Вызов команды “ Open Table Definition ”

    Также эта команда размещается в меню Data:

    Предварительно таблицу нужно выделить.

    8. Установление связей между таблицами.

    В соответствии с условием задачи, таблицы связаны между собою по полю Num_book.

    Чтобы создать связь между таблицами, сначала нужно (рисунок 16):

    • выделить объект Database Diagram;
    • выбрать команду Add New Diagram из контекстного меню (или из меню Data).

    SQL Server диаграмма добавить

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

    В результате откроется окно добавления новой диаграммы Add Table (рисунок 17). В этом окне нужно выбрать последовательно две таблицы Session и Student и нажать кнопку Add.

    таблица диаграмма добавление окно

    Рис. 17. Окно добавления таблиц к диаграмме

    таблица диаграмма добавление рисунок

    Рис. 18. Таблицы Student и Session после добавления их к диаграмме

    Чтобы начать устанавливать отношение между таблицами, надо сделать клик на поле Num_book таблицы Student, а потом (не отпуская кнопку мышки) перетянуть его на поле Num_book таблицы Session.

    В результате последовательно откроются два окна: Tables and Columns (рис. 19) и Foreign Key Relationship (рис. 20), в которых нужно оставить все как есть и подтвердить свой выбор на OK.

    В окне Tables and Columns задается название отношения ( FK_Session_Student ) и названия родительской (Student) и дочерней таблиц.

    связь база данных SQL Server

    Рис. 19. Окно Tables and Columns

    SQL Server свойство отношение

    Рис. 20. Окно настройки свойств отношения

    После выполненных действий будет установлено отношение между таблицами (рисунок 21).

    SQL Server таблица отношение рисунок

    Рис. 21. Отношение между таблицами Student и Session

    Сохранение диаграммы осуществляется точно также как и сохранение таблицы. Имя диаграммы нужно выбрать на свое усмотрение (например Diagram1).

    После задания имени диаграммы откроется окно Save, в котором нужно подтвердить свой выбор (рисунок 22).

    SQL Server изменение таблица

    Рис. 22. Подтверждение сохранения изменений в таблицах

    9. Ввод данных в таблицы.

    Система Microsoft Visual Studio разрешает непосредственно вносить данные в таблицы базы данных.

    Чтобы вызвать режим ввода данных в таблицу Student, нужно вызвать команду Show Table Data из контекстного меню (клик правой кнопкой мышки) или с меню Data (рис. 23).

    SQL Server данные таблица

    Рис. 23. Команда Show Table Data

    Откроется окно, в котором нужно ввести входные данные (рис. 24).

    SQL Server ввод данные таблица

    Рис. 24. Ввод данных в таблице Student

    После внесения данных в таблицу Student нужно внести данные в таблицу Session.

    При внесении данных в поле Num_book таблицы Session нужно вводить точно такие же значения, которые введены в поле Num_book таблицы Student (поскольку эти поля связаны между собой).

    Например, если в поле Num_book таблицы Student введены значения “101”, “102”, “103” (см. рис. 24), то следует вводить именно эти значения в поле Num_book таблицы Session. Если попробовать ввести другое значение, система выдаст приблизительно следующее окно (рис. 25).

    Таблица Session с введенными данными изображена на рисунке 26.

    таблица данные ввод SQL Server

    Рис. 26. Таблица Session с введенными данными

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

    1. Создание базы данных

    В качестве СУБД выберем программу Microsoft Access. Но вы можете использовать и другую базу данных.

    Создаем базу данных в Microsoft Access и называем её «test». В этой базе данных создаем таблицу «contacts»:

    Заполните базу данных данными:

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

    2. Создание проекта

    В Visual Studio создаём проект:

    Открываем список «Выберите источник данных» и нажимаем на ссылку «Добавить источник данных проекта»:

    Откроется «Мастер настройки источника данных». В качестве источника выбираем «База данных» и идем далее:

    В следующем окне идем далее:

    В окне «Выбор подключения к базе данных» нажимаем на «Создать подключение»:

    В следующем окне «Добавить подключение» выбираем в «Поставщик OLE DB» Microsoft Office 16.0 Access Database. В «Имя сервера или файла» вписываем путь к нашему файлу базы данных Access (который создали в первом пункте). Проверяем подключение и жмем «ОК»:

    Update 2021: Visual Studio 2019 требует файл Access старого формата (.mdb – это старый формат баз данных Access 2002-2003):

    В следующем окне идем далее:

    Выйдет окно для переноса файла базы данных в Ваш проект нажимаем «Да»:

    В следующем окне ничего не меняем и идем далее:

    В следующем окне выбираем нашу таблицу «contacts» и жмем «Готово»:

    После всех манипуляций наша форма должна быть примерно такой:

    Если запустить наш проект, то можно увидать данные из нашей базы данных:

    Поменяйте ширину всех столбцов на «150» чтобы столбцы вместились во все окно:

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

    3. Сохранение данных

    Базу данных мы видим, но редактировать её невозможно и именно поэтому нам нужна кнопка «Сохранить». Добавляем на форму кнопку и в свойствах меняем имя на «SaveButton». После добавления кнопки нажимаем на нее два раза и пишем код:

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

    4. Изменение заголовков столбцов таблицы

    Изменим текст столбцов и скроем столбец «img»:

    Полезные свойства для изменения столбцов:

    • HeaderText – задает название столбца.
    • Visible – скрывает заголовок или наоборот.
    • Width – ширина столбца.
    • Resizable – можно ли изменять ширину столбца.

    После того как скроете заголовок «img» измените ширину всех остальных заголовков:

    5. Защита от случайного удаления

    Чтобы пользователь случайно не удалил запись в нашей базе данных нужно сделать так чтобы перед удалением приложение спрашивало об удалении записи.

    Для этого перейдем к компоненту DataGridView, откроем список событий и установим обработчик для события UserDeletingRow. Нажмите два раза на пустую строчку возле события и перейдете к коду. Вписываем код:

    После этого проверим работоспособность данного кода. Запустим приложение и попробуем удалить запись. Должно быть вот так:

    6. Добавление данных

    Добавляем новую форму в проект и называем ее «AddForm»:

    Изменяем заголовок формы и добавляем на форму компоненты:

    • 1 groupBox c текстом «Добавление записи»;
    • 4 TextBox и меняем свойство «Name» на (tbName, tbPhone, tbMail, tbPhoto);
    • 4 label и меняем текст на (Имя, Телефон, E-mail, Фото);
    • 1 Button и меняем свойство «Name» на «AddBtn» (Добавить);
    • 1 Button и меняем свойство «Name» на «CloseBtn» (Закрыть).

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

    Проверьте работоспособность приложения:

    Возвращаемся на форму «Добавления записи». Пишем обработчик событий для кнопки «CloseBtn»:

    Чтобы обработчик событий на кнопке «AddBtn» работал как надо нужно выполнить несколько действий. Зайти в «Form1.Designer.cs» и изменить модификаторы доступа на «public» нижеуказанных файлов:

    • System.Windows.Forms.DataGridView dataGridView1;
    • testDataSet testDataSet;
    • System.Windows.Forms.BindingSource contactsBindingSource;
    • testDataSetTableAdapters.contactsTableAdapter contactsTableAdapter;

    Это нужно для того чтобы наша база данных была доступна для разных с ней манипуляций во всех создаваемых нами формах. Обработчик событий для кнопки «AddBtn»:

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

    7. Поиск данных

    Реализуем самый простой поиск. Данный поиск используется в небольших приложениях. Создаем новую форму с именем «SearchForm» и добавляем на форму компоненты:

    • 1 GroupBox (Поиск);
    • 1 label;
    • 2 button (Найти и Закрыть);
    • 1 TextBox и меняем в свойствах «Name» на «tbStr».

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

    Проверяем работоспособность приложения:

    Возвращаемся на форму «Поиска». Пишем обработчик событий для кнопки «Закрыть»:

    Пишем обработчик событий для кнопки «Найти»:

    На главную форму добавляем кнопку «Выход» и пишем для нее код:

    Итоговая форма приложения:

    Исходный код доступен на GitHub.

    Введение в SQLite

    • если в названии пакета для скачивания нет слова “static”, то это значит, что на машине разработчика и пользователя приложения должна стоять Microsoft Visual C++ Runtime Library (2005, 2008, 2010, 2012, 2013 или 2015).
    • если в названии есть слово “setup”, то он включает в себя и автоматически устанавливает на машину Microsoft Visual C++ Runtime Library.
    • пакет со словом “bundle”, используется в том случае, если библиотеки необходимо разместить в Global Assembly Cache

    Сами разработчики рекомендуют брать во внимание следующие моменты при выборе дистрибутива SQLite:

    Структура папки, в которой располагается приложение, для поддержки режима автоматической подгрузки нужных библиотек (Native Library Pre-Loading) представлена ниже

    • <bin>\App.exe (опционально, приложение)
    • <bin>\App.dll (опционально, библиотека приложения)
    • <bin>\System.Data.SQLite.dll (требуется, core сборка)
    • <bin>\System.Data.SQLite.Linq.dll (опционально, LINQ сборка)
    • <bin>\System.Data.SQLite.EF6.dll (опционально, EF6 сборка)
    • <bin>\x86\SQLite.Interop.dll (требуется, x86 native interop сборка)
    • <bin>\x64\SQLite.Interop.dll (требуется, x64 native interop сборка)

    Создадим простое приложение, демонстрирующее работу с SQLite СУБД. В качестве среды разработки будем использовать Visual Studio 2015 Community Edition.

    Подготовка

    В Visual Studio создадим проект Windows Forms Application с именем SQLiteSample.

    После этого необходимо собрать проект, для того, чтобы IDE создала необходимый набор каталогов. В нашем случае интерес представляет \bin\Debug. В него добавим необходимый набор файлов, как показано выше в описании структуры папок при использовании подхода Native Library Pre-Loading.

    Добавим в проект ссылку на библиотеку System.Data.SQLite.dll, предварительно скопировав ее в папку SQLiteSample\SQLiteSample\lib. Для этого на панели меню выбрать Project/Add Reference… В открывшемся окне нажать кнопку Browse… и выбрать файл System.Data.SQLite.dll. Что привет к появлению нового Reference в окне Solution Explorer.

    sqlite_c_sharp_pic1

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

    sqlite_c_sharp_pic2

    На панели инструментов имеются несколько кнопок:

    В строке состояния отображается статус:

    Создание базы данных, таблиц и работа с данными

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

    Предварительно подключим в нашем проекте пространство имен System.Data.SQLite и добавим переменные для связи с базой данных. Таким образом наша программа будет иметь вид.

    Создание БД и таблицы

    Создание БД и таблицы в “SQLite Sample”, если они ещё не созданы, осуществляется при нажатии на кнопку Create.

    После этого мы подключаемся к созданной БД:

    Для выполнения SQL команд будем использовать переменную m_sqlCmd, чтобы это стало возможным в первую очередь зададим объект класса SqlConnection, используемый SQLiteCommand:

    После выполним запрос на создание таблицы:

    Подключение к уже существующей таблице

    Подключение к уже существующей таблице осуществляется при нажатии на кнопку Connect. Код метода очень похож на тот, что мы разбирали выше, поэтому на нем мы останавливаться не будем.

    Чтение данных

    Чтение данных осуществляется при нажатии на кнопку Read all, при этом из существующей БД считываются все данные и выводятся в таблицу.

    Разберем этот метод более подробно. Первое, что необходимо сделать, это проверить наличие связи с БД:

    Данные, считанные из базы, мы будем помещать в таблицу DataTable, а из неё будем из перегружать в элемент DataGridView, расположенный на нашей форме. Для этого создадим SQL запрос и адаптер, который будет выполнять запрос и передавать полученные от СУБД данные в таблицу

    Если таблица не пуста, перенесем данные из нее в элемент dgvViewer.

    Добавление данных в БД

    Добавление данных в БД осуществляется при нажатии на кнопку Add. При этом будет вызван соответствующий метод.

    В нем мы также, вначале проверяем, есть ли связь с БД, после этого создает диалоговое окно для ввода имени автора и названия произведения.

    Если окно было закрыто по кнопку OK, то записываем введенные данные в БД

    На этом можно завершить описание базовых понятий и методов работы с СУБД SQLite.

    Спасибо за внимание!

    Привет, у тебя нет проблем с поиском кириллических символов в базе? У меня почему-то совсем не ищет

    Просто скачал проект с гитхаба и пробую запустить.

    Нужно установить Microsoft Visual C++ 2010

    Не ясно как определить lbStatusText.Text. Явно в проекте lbStatusText.Text не определена, а других пояснений нет.

    Вот скажите человек пытается разобраться БД, а вы еще ему тему со StatusStrip подбрасываете. В вашем примере lbStatusText.Text не определена. Нужно лезть подключать StatusStrip. А это совсем другая опера. Нельзя ли сделать этот пример без StatusStrip?

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

    Здравствуйте.
    Подскажите пожалуйста, как мне прочитать данные из ячейки, находящейся в определённом столбце?
    К примеру, есть таблица из 4 столбцов: title, discription, date, sirial
    Допустим мне нужно прочитать данные из 6-ой строки столбца description
    Скажите пожалуйста, как правильно сформировать запрос к базе и вывести результат например в MessageBox?
    Большое спасибо

    Техническое обеспечение

    2.1 Персональная ЭВМ IBM Pentium IV и более поздних моделей c оперативной памятью не менее 512 Мбайт.

    2.4 Манипулятор типа “мышь”.

    Программное обеспечение

    3.1 Операционная система Windows XP SP 3 более поздние версии Windows.

    3.2 Система программирования Microsoft Visual Studio 2005 и более поздние версии.

    Постановка задачи

    Разработать консольное и Windows-приложения для однотабличной базы данных для СУБД Microsoft SQL Server, реализованной согласно варианта задания, которые приведены в разделе 6 настоящих методических указаний.

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

    Большинство приложений так или иначе обрабатывает данные. Эти данные час­то хранятся в реляционной базе данных, например, SQL Server, Oracle или MySQL (существует и множество других).

    Во всех примерах методических указаний используется база данных TestDB, содержащая единственную таблицу под названием Books. В первом разделе обсуждается созда­ние базы данных на сервере SQL Server.

    Создание базы данных в Visual Studio

    Задача. Вы хотите создать базу данных из среды Visual Studio.

    Решение. Вначале установите сервер базы данных, например, SQL Server (для целей этих методических указаний отлично подойдет Express Edition). В то время как SQL Server ав­томатически интегрируется с Visual Studio, не исключено, что вам придется загру­зить дополнительные компоненты, чтобы базы данных от сторонних производите­лей могли работать в среде Visual Studio. В этом разделе предполагается, что вы используете SQL Server.

    1) Откройте Server Explorer (в меню View (Вид) или комбинацией клавиш <Ctrl>+<W>, <L>).

    2) Сделайте щелчок правой кнопкой мыши по Data Connections (Соединения с данными) и выберите Create New SQL Server Database (Создать базу данных в SQL Server).

    3) Выберите экземпляр сервера в раскрывающемся списке и укажите метод аутен­тификации (в соответствии с настройками сервера).

    4) Введите имя, например, TestDB и щелкните по кнопке ОК.

    5) Разверните окно созданной базы данных.

    6) Сделайте щелчок правой кнопкой мыши по Tables и выберите пункт Add New Table (Добавить новую таблицу).

    7) Сконфигурируйте таблицу примерно так, как показано на рис. 17.1.

    8) Закройте окно и дайте таблице имя Books.

    9) Чтобы заполнить таблицу данными, сделайте на ней щелчок правой кнопкой мыши и выберите Show Table Data (Показать данные таблицы). Значения, ко­торые я добавил в свою таблицу, показаны на рис. 17.2.


    Рисунок 17.1 – Конфигурация таблицы в тестовой базе данных


    Рисунок 17.2 – Данные в таблице

    Соединение с базой и чтение данных

    Задача. Вам нужно установить соединение с базой данных и выдать простой за­прос к ней.

    Решение. Работа с большинством баз данных сводится к следующим шагам:

    1) Создать соединение с помощью строки соединения.

    2) Выдать команду в соответствии с синтаксисом SQL.

    3) Выполнить команду через соединение и, возможно, получить данные.

    В следующих разделах вы увидите конкретные примеры того, как это делается. Чтобы код примеров в этой главе был работоспособным, в большинстве случаев требуется пространство имен System.Data.SqlClient, даже если в коде отсутству­ют прямые ссылки на него.

    Реализацию данной задачи см. проект ConnectToSqlServer.

    Соединение с SQL Server

    static void Main(string[] args)

    string connectionString = GetConnectionString();

    using (SqlConnection conn =

    //He забудьте передать команде объект-соединение

    using (SqlCommand cmd = new SqlCommand(

    "SELECT * FROM Books", conn)

    using (SqlDataReader reader = cmd.ExecuteReader())

    // Класс SqlDataReader читает ряды и базы данных

    // по одному, по мере того, как вы их запрашиваете

    catch (SqlException ex)

    // Хранить строки соединения в исходном коде не нужно.

    // но здесь это сделано в иллюстративных целях

    static string GetConnectionString()

    // Укажите источник данных, соответствующий

    // локальной копии SQL Server на вашем компьютере

    return @"Data source=NICOL_SRV\SQLEXPRESS;

    Initial Catalog=TestDB; Integrated Security=SSPI";

    Этот код выводит следующие результаты:

    Les Miserables 1862

    Notre-Dame de Paris 1831

    Соединение с MySQL

    - воспользоваться программой-установщиком, которая поместит библиотеку MySql.Data.dll в глобальный кэш сборки (GAC, Global Assembly Cache), чтобы приложения MySql могли обращаться к ней;

    - поместить MySql.Data.dll в свой проект и обращаться к ней непосредственно из файловой системы.

    В коде, сопровождающем эту главу, выбрана вторая возможность. Хотя это дело вкуса, я предпочитаю минимизировать внешние зависимости проекта. После до­бавления ссылки на компонент код оказывается практически идентичным коду, работающему с SQL Server.

    Реализацию данной задачи см. проект ConnectToMySQL.

    static void Main(string[] args)

    string connectionString = GetConnectionString();

    // Практически код тот же самый,

    // но везде появился префикс “My”

    using (MySqlConnection conn =

    using (MySqlCommand cmd = new MySqlCommand(

    "SELECT * FROM Books", conn))

    using (MySqlDataReader reader = cmd.ExecuteReader())

    catch (MySqlException ex)

    // Хранить строки соединения в исходном коде не надо,

    // но здесь это сделано в иллюстративных целях

    static string GetConnectionString()

    return @"Data source=localhost;Initial Catalog=TestDB;

    Примечания

    Когда вы пользуетесь базовыми классами для работы с базами данных, в вашем рас­поряжении имеются только функциональные возможности, общие для всех серверов. Но даже в этом случае есть вероятность, что какая-то база данных не поддерживает весь интерфейс. То есть, при попытке написать код, не зависящий от базы данных, вы все-таки вынуждены реализовать функциональность, специфичную для отдельных баз данных.

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

    Примечания

    Большинство SQL-объектов является оболочками для внешних ресурсов, и это объ­ясняет активное использование операторов using в коде программы.

    Для выполнения кода обязательно используйте объекты класса SqlCommandс пара­метрами. Это защитит вашу базу данных от атак вида "SQL-инъекция". Если вы буде­те выполнять обычные SQL-операторы, особенно с пользовательскими данными внутри них, это послужит сигналом для злоумышленников, что базу данных можно ук­расть или разрушить.

    Действительно ли вам необходимо удалить данные? Эта задача может оказаться до­вольно трудоемкой, если у вас много таблиц, ссылающихся друг на друга. Вы не по­верите, но во многих случаях гораздо проще оставлять данные в таблице и сопровож­дать поле "Удалено", которое будет служить идентификатором, что запись содержит неактивные данные.

    Тем не менее, удалять данные приходится. Например, если принят закон, требующий удаления определенных данных по истечении определенного интервала времени.

    Транзакции

    Задача. Вы хотите использовать транзакции, чтобы несколько операций обраба­тывались как атомарная единица, то есть либо все они выполняются успешно, либо все заканчиваются неудачей.

    Решение. Вы можете создать транзакцию на основе объекта-соединения. После этого нужно включать ее в каждую выполняемую команду.

    Читайте также: