[C#] Visual Studio에서 PostgreSQL 사용하기.
2009/03/23 05:07
| ADO.NET에는 기본적으로 SQL Server, Oracle, OLE DB, ODBC를 위한 데이터 공급자(Data Provider)를 제공하고 있습니다. 불행하게도 여기에는 PostgreSQL을 위한 데이터 공급자는 없습니다. PostgreSQL을 사용하려면 선택을 해야합니다. 기본으로 제공되는 ODBC 또는 OLE DB를 통해 연결을 하는 방법과 이 글에서 설명할 PostgreSQL을 위한 데이터 공급자를 사용하는 것입니다. PostgreSQL을 위한 데이터 공급자는 상용으로도 판매되고 있습니다. 구글에서 "Data Provider for PostgreSQL"로 검색을 하시면 여러가지 제품을 보실 수 있습니다. 이 글에서는 무료로 사용할 수 있는 Npgsql을 사용합니다. (라이선스에 대한 자세한 내용은 여기에서 확인하세요) Npgsql 홈페이지를 방문하면 알 수 있지만 100% C#으로 쓰여졌다고 합니다. 소스도 공개돼 있으니 참고하실 분은 참고하세요. 한가지 아쉬운 점은 지금까지는 DDEX를 제공하지 않기 때문에 몇가지 안 되는 기능들이 있습니다. DDEX는 쉽게 말하자면 Visual Studio에서 코딩할 때(Design Time) 사용할 수 있는 기능을 제공하는 것을 말합니다. 자세한 내용은 MSDN 페이지에서 잘 살펴 보세요. Npgsql 을 사용하기 위해서 필요한 파일을 다운로드 합니다. 다운로드는 여기에서 할 수 있습니다. 여기서는 Npgsql2.0.4-bin-ms.net3.5.zip을 사용하겠습니다. 다운로드한 파일을 적당한 곳에 압축을 풉니다. C:\PostgreSQL\Npgsql2.0.4-bin-ms.net3.5에 풀었다고 생각하고 설명하겠습니다. 압축을 풀었으면 GAC(Global Assembly Cache)에 등록을 해야합니다. Visual Studio 메뉴에 있는 "Visual Studio 2008 명령 프롬프트"에서 압축을 푼 곳에 있는 bin 디렉토리로 이동한 후에 다음 명령을 입력합니다. gacutil -i Npgsql.dll 설치는 여기까지 입니다. 이제 잘 되는지 테스트 해 보겠습니다. Visual Studio를 실행합니다. 새로운 콘솔 응용 프로그램을 작성합니다. 솔루션 탐색기에서 참조를 추가합니다. 참조 추가 대화상자의 찾아보기 탭에서 위에서 압축을 푼 디렉토리에 있는 bin 폴더로 이동하고 Npgsql.dll 파일을 선택하고 확인 버튼을 클릭합니다. 참조에 Npgsql이 추가 되어 있는 것을 볼 수 있습니다. 참고로 위 참고 추가 대화상자에 .NET 탭에서 Npgsql을 볼 수 있으려면 C# 참조 추가 다이얼로그에 추가하기를 보시기 바랍니다. 한번 등록하면 새로운 프로젝트마다 매번 Npgsql.dll 위치를 찾아가지 않아도 쉽게 참조를 추가할 수 있습니다. 아래 코드를 입력합니다. using System; using System.Collections.Generic; using System.Linq; using System.Text; using Npgsql; namespace SangkleTestNpgsql { class Program { static void Main(string[] args) { NpgsqlConnectionStringBuilder csb = new NpgsqlConnectionStringBuilder(); csb.UserName = "로그인 롤 이름(아이디)"; csb.Password = "비밀번호"; csb.Host = "PostgreSQL 서버가 설치된 서버의 IP 또는 이름"; csb.Database = "데이터 베이스 이름"; csb.Port = 5432; Console.WriteLine("ConnectionString : {0}", csb.ToString()); NpgsqlConnection conn = new NpgsqlConnection(csb.ToString()); conn.Open(); NpgsqlCommand cmd = new NpgsqlCommand("Select Version();", conn); Console.WriteLine("PostgreSQL Version : {0}", cmd.ExecuteScalar()); conn.Close(); Console.ReadKey(); } } } 알고 계시겠지만 위 코드에서 UserName, Password, Host, Database, Port 값은 자신의 환경에 맞게 설정 하셔야 합니다. 코드에서 using Npgsql;에서 Npgsql이 Npgsql을 위한 네임스페이스입니다. NpgsqlConnectionStringBuilder나 NpgsqlConnection에서 알 수 있듯이 Npgsql은 Npgsql을 접두어로 사용하고 있습니다. |



