Область применения:
База данных SQL Azure
Управляемый экземпляр SQL Azure
Azure Synapse Analytics
В этом кратком руководстве вы будете использовать код .NET и C# для подключения к базе данных. Затем вы выполните инструкцию Transact-SQL для запроса данных. Это краткое руководство применимо к Windows, Linux и macOS и использует единую платформу .NET.
Для завершения работы с этим кратким руководством вам понадобится:
Откройте командную строку и создайте папку с именем sqltest. Перейдите в эту папку и выполните следующую команду.
dotnet new console
Эта команда создает файлы проекта нового приложения, включая первоначальный файл кода C# (Program.cs), файл конфигурации XML (sqltest.csproj) и необходимые двоичные файлы.
В командной строке, используемой выше, выполните следующую команду.
dotnet add package Microsoft.Data.SqlClient
Эта команда добавляет Microsoft.Data.SqlClient
пакет в проект.
Вставка кода для запроса к Базе данных SQL Azure
В текстовом редакторе, например Visual Studio Code, откройте Program.cs.
Замените содержимое следующим кодом и добавьте соответствующие значения для сервера, базы данных, имени пользователя и пароля.
Примечание
Чтобы использовать строку подключения ADO.NET, замените 4 строки в коде, устанавливающем сервер, базу данных, имя пользователя и пароль, следующей строкой. В строке задайте имя пользователя и пароль.
builder.ConnectionString="<connection-string>";
using Microsoft.Data.SqlClient;
using System;
using System.Threading.Tasks;
namespace sqltest
{
class Program
{
static async Task Main(string[] args)
{
var builder = new SqlConnectionStringBuilder
{
DataSource = "<your_server.database.windows.net>",
UserID = "<your_username>",
Password = "<password>",
InitialCatalog = "<your_database>"
};
var connectionString = builder.ConnectionString;
try
{
await using var connection = new SqlConnection(connectionString);
Console.WriteLine("\nQuery data example:");
Console.WriteLine("=========================================\n");
await connection.OpenAsync();
var sql = "SELECT name, collation_name FROM sys.databases";
await using var command = new SqlCommand(sql, connection);
await using var reader = await command.ExecuteReaderAsync();
while (await reader.ReadAsync())
{
Console.WriteLine("{0} {1}", reader.GetString(0), reader.GetString(1));
}
}
catch (SqlException e) when (e.Number == /* specific error number */)
{
Console.WriteLine($"SQL Error: {e.Message}");
}
catch (Exception e)
{
Console.WriteLine(e.ToString());
}
Console.WriteLine("\nDone. Press enter.");
Console.ReadLine();
}
}
}
Не забудьте заменить <your_server.database.windows.net>
, <your_username>
, <password>
и <your_database>
с фактическими сведениями о SQL Server. Кроме того, замените /* specific error number */
фактическим номером ошибки SQL, который требуется обрабатывать.
Запустите следующие команды в терминале.
dotnet restore
dotnet run
Проверьте, что строки возвращаются; ваш вывод может включать другие значения.
Query data example:
=========================================
master SQL_Latin1_General_CP1_CI_AS
tempdb SQL_Latin1_General_CP1_CI_AS
WideWorldImporters Latin1_General_100_CI_AS
Done. Press enter.
Нажмите клавишу ВВОД, чтобы закрыть окно приложения.