프로그래밍/C# 2011/12/12 09:05
닷넷에는 기본적으로 몇가지 DB 프로바이더가 제공되고, 제공되는 것이 외의 것은 OleDB등의 방법으로 접속할 수 있습니다. 하지만, 포스트그레스는 기본 방법으로는 접속할 수 없지요.
하지만, 검색을 해보니..
위 링크에서 포스트그레스 접속을 위한 오픈소스 프로젝트가 진행중이고, 어셈블리 두개만 프로젝트에 참조하여 쉽게 접속할 수 있습니다. 관심이 있으신분은 위 링크를 찬찬히 살펴보시면, 해당 어셈블리는 모두 닷넷으로 작성되어졌고, 소스도 지원된다는것을 알 수 있습니다.

저는 위의 소스에서 Npgsql2.0.11.92-bin-ms.net.zip 파일을 받아서 설치했는데, 제가 받은것이 닷넷2.0 기준이고, 나머지 버전 정보가 붙은것이 해당 프레임웤버전으로 작성된것이 아닐까 생각됩니다. (확인은 못해봤네요-_-)
여튼 위 파일을 받으면 몇개의 파일이 압축되어 있는데, 그 중
하지만, 검색을 해보니..
위 링크에서 포스트그레스 접속을 위한 오픈소스 프로젝트가 진행중이고, 어셈블리 두개만 프로젝트에 참조하여 쉽게 접속할 수 있습니다. 관심이 있으신분은 위 링크를 찬찬히 살펴보시면, 해당 어셈블리는 모두 닷넷으로 작성되어졌고, 소스도 지원된다는것을 알 수 있습니다.

저는 위의 소스에서 Npgsql2.0.11.92-bin-ms.net.zip 파일을 받아서 설치했는데, 제가 받은것이 닷넷2.0 기준이고, 나머지 버전 정보가 붙은것이 해당 프레임웤버전으로 작성된것이 아닐까 생각됩니다. (확인은 못해봤네요-_-)
여튼 위 파일을 받으면 몇개의 파일이 압축되어 있는데, 그 중
Npgsql.dll, Mono.Security.dll
제가 구현한 코드는 위와 같습니다.
위 두 파일만 참조하여 사용하면 됩니다.
실제 구현부는 기존의 방법과 같이 커맨드를 생성하고, 리더를 통해서 읽어오던지 어댑터를 통해서 한번에 부어 담던지 별다를바 없습니다.
public DataTable InvokeQuery(string connectionString, string queryString)
{
NpgsqlConnection con = new NpgsqlConnection(connectionString);
try
{
con.Open();
NpgsqlCommand cmd = con.CreateCommand();
cmd.CommandText = queryString;
cmd.CommandType = System.Data.CommandType.Text;
NpgsqlDataAdapter adapter = new NpgsqlDataAdapter(cmd);
DataTable result = new DataTable();
adapter.Fill(result);
return result;
}
catch (Exception ex)
{
throw ex;
}
finally
{
con.Close();
con = null;
}
}
제가 구현한 코드는 위와 같습니다.
http://lemonwidz.com/tc/trackback/25


0