빠른 시작: .NET(C#)를 사용하여 데이터베이스 쿼리
적용 대상: Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics
이 빠른 시작에서는 .NET 및 C# 코드를 사용하여 데이터베이스에 연결합니다. Transact-SQL 문을 실행하여 데이터를 쿼리합니다. 이 빠른 시작은 Windows, Linux, macOS에 적용할 수 있으며 통합 .NET 플랫폼을 활용합니다.
팁
이 평가판 Learn 모듈에서는 Azure SQL 데이터베이스의 데이터베이스를 쿼리하는 ASP.NET 애플리케이션 개발 및 구성을 수행하는 방법을 보여 줍니다.
필수 조건
이 빠른 시작을 완료하려면 다음이 필요합니다.
활성 구독이 있는 Azure 계정. 체험 계정을 만듭니다.
운영 체제의 .NET SDK가 설치되었습니다.
쿼리를 실행할 데이터베이스입니다.
다음 빠른 시작 중 하나를 사용하여 데이터베이스를 만들고 구성할 수 있습니다.
작업 SQL Database SQL Managed Instance Azure VM의 SQL Server Azure Synapse Analytics 생성 포털 포털 포털 포털 CLI CLI PowerShell PowerShell PowerShell PowerShell 배포 템플릿 배포 템플릿 배포 템플릿 배포 템플릿 구성 서버 수준 IP 방화벽 규칙 VM에서 연결 연결 설정 온-프레미스에서 연결 SQL Server 인스턴스에 연결 연결 정보 가져오기 Azure SQL Azure SQL SQL VM Synapse SQL
.NET 프로젝트 새로 만들기
명령 프롬프트를 열고 sqltest라는 폴더를 만듭니다. 이 폴더로 이동한 후 다음 명령을 실행합니다.
dotnet new console
이 명령을 사용하면 초기 C# 코드 파일(Program.cs), XML 구성 파일(sqltest.csproj) 및 필요한 이진을 포함하는 새로운 앱 프로젝트 파일이 생성됩니다.
위에서 사용된 명령 프롬프트에서 다음 명령을 실행합니다.
dotnet add package Microsoft.Data.SqlClient
이 명령은
Microsoft.Data.SqlClient
패키지를 프로젝트에 추가합니다.
Azure SQL 데이터베이스에서 데이터베이스를 쿼리하는 코드 삽입
Visual Studio Code 같은 텍스트 편집기에서 Program.cs를 엽니다.
내용에 다음 코드를 입력하고, 서버, 데이터베이스, 사용자 이름 및 비밀번호를 적절한 값으로 바꿉니다.
참고 항목
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 오류 번호로 바꿉니다.
코드 실행
프롬프트에서 다음 명령을 실행합니다.
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.
Enter 키를 선택하여 애플리케이션 창을 닫습니다.