[C#] Npgsql NuGet Package 이용하여 PostgreSQL 연동하기

참조


목적

  • 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

이 글을 공유하기

댓글

Designed by JB FACTORY