0
사용자가 설치했을 수도있는 모든 유형의 DBMS를 사용할 수있는 C# 응용 프로그램을 개발 중입니다. MySql, MsSql, Sqlite 등과 같은 모든 데이터베이스와 상호 작용할 수있는 라이브러리 또는 창 API가 있는지 궁금합니다.다른 유형의 dbms와 상호 작용하는 C# 응용
사용자가 설치했을 수도있는 모든 유형의 DBMS를 사용할 수있는 C# 응용 프로그램을 개발 중입니다. MySql, MsSql, Sqlite 등과 같은 모든 데이터베이스와 상호 작용할 수있는 라이브러리 또는 창 API가 있는지 궁금합니다.다른 유형의 dbms와 상호 작용하는 C# 응용
SqlConnection
대신 IDbConnection
과 같이 구체적인 클래스 대신 인터페이스를 사용할 수 있습니다. 그런 다음 구체적인 유형 (예 : IDataReader
또는 IDbCommand
)을 사용하여 인터페이스를 반환하는 클래스가 필요합니다. 예를 들어
:
public class DB
{
public enum Provider {
SqlServer, MySql, Oracle//, ...
}
public DB()
{
this.CurrentProvider = Properties.Settings.Default.Provider; // presuming that you have this setting
}
public Provider CurrentProvider { get; set; }
public IDbConnection NewConnection()
{
switch (this.CurrentProvider) {
case Provider.SqlServer:
return new SqlConnection(Properties.Settings.Default.ConnectionString);
case Provider.MySql:
return new MySql.Data.MySqlClient.MySqlConnection(Properties.Settings.Default.ConnectionString);
// ...
default: throw new NotSupportedException(CurrentProvider.ToString());
}
}
// and other methods ....
}
이 길에는이 클래스는 현재 DBMS를 알 필요가있다. 물론 표준 SQL을 사용해야하고 Row_Number
과 같은 데이터베이스 특정 메서드를 사용할 수 없습니다.
책, 도구, 소프트웨어 라이브러리, 자습서 또는 기타 오프 사이트 리소스를 추천하거나 찾도록 요청하는 질문은 스택 오버플로에 대한 주제와 관련이 없습니다. –
오해해서 미안하지만 모든 유형의 데이터베이스와 상호 작용하는 방법을 의미했습니다 – Vondella21
_ "모든 유형의 DBMS .."- 너무 광범위 할 수도 있음 ** 요구 사항 – MickyD