[C#] Npgsql NuGet Package 이용하여 PostgreSQL 연동하기
- C#
- 2022. 4. 11. 17:42
참조
목적
- Npgsql NuGet Package 를 이용하여 C# 서비스에서 PostgreSQL 데이터베이스 연동되는지 테스트 진행합니다.
개발 환경
- 개발 환경은 다음과 같습니다.
- OS : Windows 10
- .NET Version : .NET 6
- 개발 도구 : Visual Studio 2022
Npgsql 이란?
- Npgsql은 PostgreSQL용 오픈소스 입니다.
- .NET을 사용하여 PostgreSQL 서버에 연결하고 상호작용 하도록 도와줍니다.
Npgsql NuGet Package 추가
- NuGet Package Manager 에서 Npgsql 입력하여 Npgsql Nuegt Package 를 설치 진행합니다.
예제 코드 작성
- 앞서 Npgsql Nuegt Package 를 설치 완료하였다면, 아래 예제 코드를 작성하여 PostgreSQL 연동 테스트 진행합니다.
using Npgsql;
using NpgSQL_Test;
const string host = "localhost";
const string userName = "postgres";
const string password = "postgres";
const string database = "postgres";
const string CONNECTION_STRING = $"host={host};username={userName};password={password};database={database}";
const string TABLE_NAME = "users";
Get(30);
static async Task<Users> Get(int age)
{
NpgsqlConnection connection = new NpgsqlConnection(CONNECTION_STRING);
connection.Open();
string commandText = $"SELECT * FROM {TABLE_NAME} WHERE AGE = @age";
await using (NpgsqlCommand cmd = new NpgsqlCommand(commandText, connection))
{
cmd.Parameters.AddWithValue("age", age);
await using (NpgsqlDataReader reader = await cmd.ExecuteReaderAsync())
while (await reader.ReadAsync())
{
Users user = ReadUser(reader);
Console.WriteLine($"Name : {user.Name} Age : {user.Age}");
return user;
}
}
return null;
}
static Users ReadUser(NpgsqlDataReader reader)
{
int? age = reader["age"] as int?;
string? name = reader["name"] as string;
Users user = new Users
{
Age = age.Value,
Name = name
};
return user;
}
public class Users
{
public string Name { get; set; }
public int Age { get; set; }
}
728x90
'C#' 카테고리의 다른 글
[EF Core ]PostgreSQL JSONB 용량 테스트 (0) | 2022.04.14 |
---|---|
[EF Core] EF Core & PostgreSQL Column JSONB 타입 데이터 추가 (0) | 2022.04.13 |
[C# gRPC] 클래스 라이브러리 생성 후, protocol buffer(.proto) 파일 관리 (0) | 2022.04.09 |
[C# gRPC] Blazor Server 앱 - gRPC Client 생성 (6) | 2022.04.07 |
[C#] ASP.NET Core gRPC Server - gRPC 서버 생성 (3) | 2022.04.07 |
이 글을 공유하기