다음을 통해 공유


빠른 시작: .NET(C#)를 사용하여 데이터베이스 쿼리

적용 대상: Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics

이 빠른 시작에서는 .NET 및 C# 코드를 사용하여 데이터베이스에 연결합니다. Transact-SQL 문을 실행하여 데이터를 쿼리합니다. 이 빠른 시작은 Windows, Linux, macOS에 적용할 수 있으며 통합 .NET 플랫폼을 활용합니다.

이 평가판 Learn 모듈에서는 Azure SQL 데이터베이스의 데이터베이스를 쿼리하는 ASP.NET 애플리케이션 개발 및 구성을 수행하는 방법을 보여 줍니다.

필수 조건

이 빠른 시작을 완료하려면 다음이 필요합니다.

.NET 프로젝트 새로 만들기

  1. 명령 프롬프트를 열고 sqltest라는 폴더를 만듭니다. 이 폴더로 이동한 후 다음 명령을 실행합니다.

    dotnet new console
    

    이 명령을 사용하면 초기 C# 코드 파일(Program.cs), XML 구성 파일(sqltest.csproj) 및 필요한 이진을 포함하는 새로운 앱 프로젝트 파일이 생성됩니다.

  2. 위에서 사용된 명령 프롬프트에서 다음 명령을 실행합니다.

    dotnet add package Microsoft.Data.SqlClient
    

    이 명령은 Microsoft.Data.SqlClient 패키지를 프로젝트에 추가합니다.

Azure SQL 데이터베이스에서 데이터베이스를 쿼리하는 코드 삽입

  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. Enter 키를 선택하여 애플리케이션 창을 닫습니다.