Краткое руководство. Использование .NET и C# в Visual Studio для подключения и создания запросов к базе данных
В этом кратком руководстве показано, как использовать код .NET и C# в Visual Studio для запроса базы данных в Azure SQL или Synapse SQL с инструкциями Transact-SQL.
Предварительные требования
Для работы с этим кратким руководством вам понадобится:
Создание кода для запроса к базе данных в службе «База данных SQL Azure»
- В Visual Studio создайте проект .
- В диалоговом окне «Создать проект» выберите консольное приложение C#.
- Введите sqltest для имени проекта и нажмите кнопку «Далее«.
- Выберите параметр платформы (долгосрочная поддержка), например .NET 6.0, а затем нажмите кнопку «Создать«. Создается новый проект.
- Выберите Проект>Управление пакетами NuGet.
- В диспетчере пакетов NuGet выберите вкладку Обзор, а затем найдите и выберите Microsoft.Data.SqlClient.
- На странице Microsoft.Data.SqlClient щелкните Установить.
- При выводе запроса нажмите кнопку ОК, чтобы продолжить установку.
- Если откроется окно Прием условий лицензионного соглашения, выберите Я принимаю.
- После завершения установки вы можете закрыть диспетчер пакетов NuGet.
- В редакторе кода замените содержимое Program.cs следующим кодом. Замените значения , , и .
using System; using Microsoft.Data.SqlClient; using System.Text; namespace sqltest < class Program < static void Main(string[] args) < try < SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder(); builder.DataSource = ".database.windows.net"; builder.UserID = ""; builder.Password = ""; builder.InitialCatalog = ""; using (SqlConnection connection = new SqlConnection(builder.ConnectionString)) < Console.WriteLine("\nQuery data example:"); Console.WriteLine("=========================================\n"); String sql = "SELECT name, collation_name FROM sys.databases"; using (SqlCommand command = new SqlCommand(sql, connection)) < connection.Open(); using (SqlDataReader reader = command.ExecuteReader()) < while (reader.Read()) < Console.WriteLine("", reader.GetString(0), reader.GetString(1)); > > > > > catch (SqlException e) < Console.WriteLine(e.ToString()); >Console.ReadLine(); > > >
Выполнение кода
- Чтобы запустить приложение, выберите Отладка>Начать отладку или Запустить на панели инструментов либо нажмите клавишу F5.
- Убедитесь, что возвращены имена баз данных и их параметры сортировки, и закройте окно приложения.
Дальнейшие действия
- Узнайте, как подключить и запросить базу данных в Базе данных SQL Azure с помощью .NET из командной строки в Windows/Linux/macOS.
- Узнайте о начале работы с .NET в Windows/Linux/macOS с помощью VS Code.
- Дополнительные сведения о разработке с помощью .NET и SQL.
- Узнайте, как создать первую базу данных в Базе данных SQL Azure с помощью SSMS.
- Дополнительные сведения о .NET см. в этой документации.
- Пример логики повтора: отказоустойчивое подключение к SQL с помощью ADO.NET.
Как подключить базу данных к visual studio
Данное руководство устарело. Актуальное руководство: Руководство по ASP.NET Core
Последнее обновление: 31.10.2015
Чтобы хранить данные, нам естественным образом нужна база данных. Как правило, в качестве базы данных используется MS SQL Server, на примере которого мы и посмотрим весь процесс создания БД и подключения к ней.
Мы можем создать базу данных прямо в проекте, либо же создать ее на сервере MS SQL. Для хранения баз данных проекте у нас предназначена папка App_Data. Для этого нажмем правой кнопкой мыши на папку App_Data и в появившемся контекстном меню выберем Add-> New Item. . В появившемся окне добавления нового элемента выберем SQL Server Database и назовем новую базу данных Bookstore.mdf:
Мы можем создать базу данных равнозначным образом и на сервере. После этого база данных добавляется в проект, и мы можем увидеть ее в папке App_Data. Теперь в обозревателе баз данных (окно Database Explorer ) мы можем подключиться к ней и создать таблицы, которые будут хранить данные.
Раскроем узел Bookstore.mdf и найдем узел Tables. Нажмем на этот узел правой кнопкой мыши и в появившемся меню выберем пункт Add New Table . И перед нами появится окно, в котором нам надо определить названия и типы столбцов новой таблицы. По соглашениям о наименованиях таблицы при работе с Entity Framework должны соответствовать имени модели. То есть, так как наша модель называется Book , то таблица будет называться Books . А Entity Framework автоматически распознает, что таблица Books соответствует классу Book .
Итак, создадим структуру таблицы:

Не забудьте установить ниже в окне Properties (в Visual Stidio 2010 — окно Column Properties) для столбца Id соответствующие параметры для первичного ключа:

После этого, если мы работаем с Visual Studio 2010, нам будет предложено просто ввести имя таблицы — введем имя Books, и затем таблица добавляется в БД.
А в Visual Studio Express 2012 for Web нам надо сгенерировать таблицу на основе заданного выше определения. Для этого нажмем на кнопку Update:

В появившемся диалоговом окне нажмем на кнопку Update Database. После этого в нашу базу данных добавляется только что сгенерированная таблица. Подобным образом определим таблицу Purchases для модели Purchase:

Добавим в таблицу Books несколько записей:

Теперь, во-первых, чтобы взаимодействовать с БД, нам нужен класс контекста данных, пусть это будет следующий класс BookContext:
using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Data.Entity; namespace BookStore.Models < public class BookContext : DbContext < public DbSetBooks < get; set; >public DbSet Purchases < get; set; >> >
Во-вторых, определим строку подключения к БД. Для этого откроем файл Web.config и добавим в конец секции configuration определение строки подключения. Однако тут надо сразу заметить, что для Visual Studio 2010 строка подключения будет отличаться от строки подключения, которая используется в Visual Studio 2012.
Итак, строка подключения для Visual Studio 2010 будет выглядеть так:
Для Visual Studio 2012 будет выглядеть определение строки подключения будет выглядеть следующим образом:
В Visual Studio 2012 в отличие от 2010-й версии мы можем использовать режим LocalDB, который предназначен прежде всего для разработчиков, представляя некоторую упрощенную версию. Поэтому в данном случае в качестве источника данных используется (LocalDB)\v11.0.
Обратите внимание, что в обоих случаях свойство name=»BookContext» должно содержать название контекста данных.
Использование подстановки |DataDirectory| позволяет опустить полный физический путь к базе данных, которая хранится в папке App_Data.
Теперь мы можем получить содержимое таблицы Books в контроллере Home:
public class HomeController : Controller < BookContext db = new BookContext(); public ActionResult Index() < return View(db.Books); >>
И вывести данные в представлении Index.cshtml:
@model IEnumerable @ < Layout = "~/Views/Shared/_Layout.cshtml"; >Распродажа книг
@foreach (BookStore.Models.Book b in Model) < Название книги
Автор
Цена
> @b.Name
@b.Author
@b.Price
Купить
Закрытие подключения
Чтобы наверняка быть уверенным, что подключение к базе данных закрыто, следует вызывать метод Dispose у контекста данных:
protected override void Dispose(bool disposing)
Это переопределенная версия метода Dispose контроллера, которая вызывается при уничтожении объекта контроллера. В нее помещается вызов db.Dispose() , который уничтожает все связанные с контекстом данных ресурсы и подключения.
Подключение и работа с MySQL в среде Visual C++
Совсем недавно мне необходимо было написать программу для удаленной работы с мускулом. В интернете, как не обидно, нашел лишь «скачайте бла-бла, подключите через include, и вот пример!». На практике не сработало, пришлось искать специалистов чтоб объяснили. Для исправления этого досадного отсутствия информации, выложу полное описание от «А» до «Я» по настройке и работе в среде Visual C++. Итак, приступим!
Данным образом настраивал Visual C++ 2008 и 2010. Т. к. особой разницы в интерфейсе разных версий визуалки нету, то и настройка проходит практически одинаково.
Для того что бы подключить БД, такую как мускул, и играться с ней на чистом API, нужно сначала установить или что бы было установлено такое ПО:
1. «Connector/C++»для 32-х розрядного приложения 32-х розрядный набор библиотек, а для 64-х соответственно 64-х битный набор (скачать можно здесь http://dev.mysql.com/downloads/connector/cpp/ ).
2. Дистрибутив мускула, у меня стоит MySQL Community Server 5.1.59 при установке нужно выбрать либо полную установку, либо выбрать самому весь набор, ну для разработки хватит набора DevCpp.
Теперь, у нас есть все библиотеки нужные для создания программы на Visual C++. Далее мы проверяем структуру наших директорий сервера мускула. У меня сервер установлен в D:\программирование\MySQL Server 5.1. Директория может быть произвольной, но в ней обязательно должны присутствовать папки include и lib. Далее копируем все файлы из C:\Program Files\MySQL\MySQL Connector C++ 1.1.0\lib\opt (папка с установленным коннектором) в D:\программирование\MySQL Server 5.1\lib\opt (папка с сервером).
Перекидывания файлов окончены, теперь настроим сам С++:
1. Открываем Visual C++, создаем стандартный консольный проект, сохраняем в любое удобное место.
2. Обязательно (. ) выбираем режим постройки проекта Release. Если выбрать стандартный Debug, то нужно файлы сохранять в другие директории.
3. Открываем свойства проекта (в окне обозревателя решений правой кнопкой по проекту — свойства).
4. Выбираем «Свойства конфигурации — С/С++ — Общие — Дополнительные каталоги включаемых файлов», добавляем каталог include из папки с сервером (в моем случае D:\программирование\MySQL Server 5.1\include).
6. В свойствах проекта выбираем пункт «Свойства конфигурации — С/С++ — Компоновщик — Общие — Дополнительные каталоги библиотек», добавляем каталог lib/opt (в моем случае D:\программирование\MySQL Server 5.1\lib\opt).
7. В свойствах проекта выбираем пункт «Свойства конфигурации — С/С++ — Компоновщик — Ввод — Дополнительные зависимости», добавляем 2 значения mysqlcppconn-static.lib и libmysql.lib.
8. В свойствах проекта выбираем пункт «Свойства конфигурации — С/С++ — Препроцессор — Определения препроцессора», добавляем значение CPPCONN_PUBLIC_FUNC=.
9. Сохраняем свойства проекта.
Далее все, что остается это дописать в проект #include , и можно работать!
Вот 2 простых примера работы с мускулом:
Тест подключения к БД
#include «stdafx.h»
#include
#include
#include
#include
#include
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
MYSQL *conn;
// Получаем дескриптор соединения
conn = mysql_init(NULL);
if(conn == NULL)
// Если дескриптор не получен – выводим сообщение об ошибке
fprintf(stderr, «Error: can’tcreate MySQL-descriptor\n»);
//exit(1); //Если используется оконное приложение
>
// Подключаемся к серверу
if(!mysql_real_connect(conn, «localhost», «root», «root», «test», NULL, NULL, 0))
// Если нет возможности установить соединение с сервером
// базы данных выводим сообщение об ошибке
fprintf(stderr, «Error: can’tconnecttodatabase %s\n», mysql_error(conn));
>
else
// Если соединение успешно установлено выводим фразу — «Success!»
fprintf(stdout, «Success!\n»);
>
// Закрываем соединение с сервером базы данных
mysql_close(conn);
Вывод на экран данных из таблицы
#include»stdafx.h»
#include
#include
#include
#include
#include
int_tmain(intargc, _TCHAR* argv[])
MYSQL *conn;
MYSQL_RES *res;
MYSQL_ROW row;
// Получаем дескриптор соединения
conn = mysql_init(NULL);
if(conn == NULL)
// Если дескриптор не получен – выводим сообщение об ошибке
fprintf(stderr, «Error: can’tcreate MySQL-descriptor\n»);
//exit(1); //Если используется оконное приложение
>
// Подключаемся к серверу
if(!mysql_real_connect(conn, «localhost», «root», «root», «test», NULL, NULL, 0))
// Если нет возможности установить соединение с сервером
// базы данных выводим сообщение об ошибке
fprintf(stderr, «Error: can’tconnecttodatabase %s\n», mysql_error(conn));
>
else
// Если соединение успешно установлено выводим фразу — «Success!»
fprintf(stdout, «Success!\n»);
>
mysql_set_character_set(conn, «utf8»);
//Смотрим изменилась ли кодировка на нужную, по умалчанию идёт latin1
cout
mysql_query(conn,»SELECT id, text FROM mnu»); //Делаем запрос к таблице по имени МНУ =)
// Закрываем соединение с сервером базы данных
mysql_close(conn);
P. S. Спасибо Владимиру Будило за разъяснение темы, эта статья вышла благодаря его объяснениям.
Краткое руководство. Подключение и запрос экземпляра SQL Server с помощью SQL Server Management Studio (SSMS)
Начало работы с SQL Server Management Studio (SSMS) для подключения к экземпляру базы данных SQL Server и выполнения некоторых команд Transact-SQL (T-SQL).
В статье показано, как выполнять следующие задачи:
- Подключение к экземпляру SQL Server
- Создание базы данных
- Создание таблицы в новой базе данных
- Вставка строк в новую таблицу
- Выполнение запросов к новой таблице и просмотр результатов
- Проверка свойств подключения с помощью таблицы окна запросов
В этой статье описывается подключение к экземпляру SQL Server и выполнение запросов к нему. Сведения об Azure SQL см. в статье о подключении к Базе данных Azure SQL и Управляемому экземпляру SQL и выполнении запросов к ним.
Чтобы использовать Azure Data Studio см. статьи о выполнении подключения и запросов к SQL Server, Базе данных SQL Azure и Azure Synapse Analytics.
Дополнительные сведения о SQL Server Management Studio см. в статье с дополнительными советами и рекомендациями.
Предварительные требования
Для работы с данным руководством необходимо следующее:
- Установите SQL Server Management Studio.
- Установите и настройте экземпляр SQL Server.
Подключение к экземпляру SQL Server
Чтобы подключиться к экземпляру SQL Server, выполните следующие действия:
Проверка подлинности SQL Server
Также для подключения можно использовать режим Проверка подлинности SQL Server. Если выбран режим Проверка подлинности SQL Server, необходимо ввести имя пользователя и пароль.
Проверка подлинности Azure AD доступна для SQL Server 2022 (16.x) и более поздних версий. Пошаговые инструкции по настройке см. в статье «Настройка проверки подлинности Azure Active Directory для SQL Server»
Создание базы данных
Выполните следующие действия, чтобы создать базу данных с именем TutorialDB:

- Щелкните правой кнопкой мыши экземпляр сервера в обозревателе объектов и выберите Создать запрос.
- Вставьте в окно запроса следующий фрагмент кода T-SQL:
USE master GO IF NOT EXISTS ( SELECT name FROM sys.databases WHERE name = N'TutorialDB' ) CREATE DATABASE [TutorialDB] GO

Создание таблицы
В этом разделе вы создадите таблицу в новой базе данных TutorialDB. Так как редактор запросов все еще находится в контексте базы данных master, переключите контекст подключения на базу TutorialDB, сделав следующее.

- Выберите нужную базу данных в раскрывающемся списке, как показано здесь:
- Вставьте в окно запроса следующий фрагмент кода T-SQL:
USE [TutorialDB] -- Create a new table called 'Customers' in schema 'dbo' -- Drop the table if it already exists IF OBJECT_ID('dbo.Customers', 'U') IS NOT NULL DROP TABLE dbo.Customers GO -- Create the table in the specified schema CREATE TABLE dbo.Customers ( CustomerId INT NOT NULL PRIMARY KEY, -- primary key column Name [NVARCHAR](50) NOT NULL, Location [NVARCHAR](50) NOT NULL, Email [NVARCHAR](50) NOT NULL ); GO
После выполнения запроса в списке таблиц в обозревателе объектов появится новая таблица Customers. Если таблица не отображается, щелкните правой кнопкой мыши узел TutorialDB>Таблицы в обозревателе объектов, а затем выберите Обновить.

Вставка строк
Вставьте в созданную таблицу Customers какие-нибудь строки. Вставьте следующий фрагмент кода T-SQL в окно запросов и нажмите кнопку Выполнить.
-- Insert rows into table 'Customers' INSERT INTO dbo.Customers ([CustomerId],[Name],[Location],[Email]) VALUES ( 1, N'Orlando', N'Australia', N''), ( 2, N'Keith', N'India', N'keith0@adventure-works.com'), ( 3, N'Donna', N'Germany', N'donna0@adventure-works.com'), ( 4, N'Janet', N'United States', N'janet1@adventure-works.com') GO
Запрос к таблице и просмотр результатов
Результаты запроса выводятся под текстовым окном запроса. Чтобы запросить таблицу Customers и просмотреть вставленные строки, выполните следующие действия:
-
Вставьте следующий фрагмент кода T-SQL в окно запросов и нажмите кнопку Выполнить.
-- Select rows from table 'Customers' SELECT * FROM dbo.Customers;
Результаты запроса отображаются под областью, где был введен текст.
Вы также можете изменить представление результатов одним из следующих способов: 
- Первая кнопка отображает результаты в текстовом представлении, как показано на снимке в следующем разделе.
- Кнопка посередине отображает результаты в представлении сетки; это параметр по умолчанию.
- Это задано по умолчанию.
- Третья кнопка позволяет сохранить результаты в файл, по умолчанию имеющий расширение .RPT.
Устранение проблем подключения
Сведения о способах устранения неполадок с подключением к экземпляру ядра СУБД SQL Server на отдельном сервере см. в статье Устранение неполадок при соединении с ядром СУБД SQL Server.
Дальнейшие действия
Лучший способ познакомиться с SSMS — это поработать в среде самостоятельно. Эти статьи помогут вам ознакомиться с различными функциями SSMS.
- Редактор запросов SQL Server Management Studio (SSMS)
- Создание скриптов
- Использование шаблонов в SSMS
- Конфигурация SSMS
- Дополнительные советы и рекомендации по использованию SSMS
