Moim zdaniem najlepszym rozwiązaniem jest stworzenie klasa pośrednia między db i stosowania (jakiś rodzaj warstwy danych), który kilka metod zarządzania zapytań. opis poniżej bazy na SQLite jako analogię do SQLServer (złącze ADO)
Wspomniana klasa może przez Singleton, a można nazwać przypadek, gdzie chcesz w aplikacji - SQLite to może wyglądać tak:
private static SQLite instance;
public static SQLite getInstance()
{
if(instance == null)
{
instance = new SQLite();
thread = Thread.CurrentThread.ManagedThreadId;
}
return instance;
}
można uzyskać instancji w ten sposób:
SQLite db = SQLite.getInstance();
Ta klasa może zawierać wiele metod manipulacji danymi na przykład:
public SQLiteCommand prepareQuery(string sql)
{
cmd = new SQLiteCommand(sql, conn);
return cmd;
}
public SQLiteDataReader executeReader()
{
return cmd.ExecuteReader();
}
public int executeInt()
{
object obj = cmd.ExecuteScalar();
return (int)obj;
}
ale również metody zarządzania transakcjami i diagnostoc. A więc - możesz użyć tej podobnej klasy w swojej aplikacji, jeśli masz inne źródła db lub nawet typy db, możesz utworzyć następną warstwę danych (na przykład dla Oracle lub MSSQL, MySQL ...), z których każda ma implementacje taki sam interfejs na przykład:
IDataBase
i teraz, masz jakąś elewacji, które można wymienić w miarę potrzeby dynamicznie. Od tego czasu korzystanie z aplikacji db koncentruje się w jednym miejscu, a korzystanie z niej jest czystą przyjemnością - to moja sugestia.
Ile masz doświadczenia w programowaniu? Czy korzystałeś już z baz danych? – Onkelborg
Mam pewne podstawowe C# wiedzy i nie wiem SQL, po prostu nie musiałem wcześniej uzyskać dostęp do db w programie C#. – user483267
To otwarte pytanie. Każda dobra odpowiedź będzie zależeć od tego, co chcesz zrobić, od czasu, z którym musisz pracować, oraz od tego, co już znasz/wygodnie. – jac