Поделиться через


Краткое руководство. Использование .NET (C#) для запроса базы данных

Область применения: База данных SQL Azure Управляемый экземпляр SQL Azure Azure Synapse Analytics

В этом кратком руководстве вы будете использовать код .NET и C# для подключения к базе данных. Затем вы выполните инструкцию Transact-SQL для запроса данных. Это краткое руководство применимо к Windows, Linux и macOS и использует единую платформу .NET.

Необходимые компоненты

Для работы с этим кратким руководством вам понадобится:

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

  1. Откройте командную строку и создайте папку с именем sqltest. Перейдите в эту папку и выполните следующую команду.

    dotnet new console
    

    Эта команда создает файлы проекта нового приложения, включая первоначальный файл кода C# (Program.cs), файл конфигурации XML (sqltest.csproj) и необходимые двоичные файлы.

  2. В командной строке, используемой выше, выполните следующую команду.

    dotnet add package Microsoft.Data.SqlClient
    

    Эта команда добавляет Microsoft.Data.SqlClient пакет в проект.

Вставка кода для запроса к Базе данных SQL Azure

  1. В текстовом редакторе, например Visual Studio Code, откройте Program.cs.

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

Примечание.

Чтобы использовать строку подключения ADO.NET, замените 4 строки в коде, устанавливающем сервер, базу данных, имя пользователя и пароль, следующей строкой. В строке задайте имя пользователя и пароль.

builder.ConnectionString="<your_ado_net_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 = "<your_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><your_password>а <your_database> также фактические сведения о SQL Server. Кроме того, замените /* specific error number */ фактическим номером ошибки SQL, который требуется обрабатывать.

Выполнение кода

  1. Выполните следующие команды при выводе запроса.

    dotnet restore
    dotnet run
    
  2. Убедитесь, что возвращаются строки, выходные данные могут содержать другие значения.

    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.
    
  3. Нажмите клавишу ВВОД, чтобы закрыть окно приложения.