En mi opinión, la mejor solución es crear clase intermedia entre el PP y la aplicación (algún tipo de capa de datos), que una serie de métodos para gestionar las consultas. Descripción debajo de la base de SQLite como una analogía a SQL Server (conector ADO)
clase mencionada puede por Singleton, y se le puede llamar instancia donde quiera que desee en su aplicación - para SQLite que puede parece que:
private static SQLite instance;
public static SQLite getInstance()
{
if(instance == null)
{
instance = new SQLite();
thread = Thread.CurrentThread.ManagedThreadId;
}
return instance;
}
puede obtener la instancia de esta manera:
SQLite db = SQLite.getInstance();
esta clase puede contener múltiples métodos para la manipulación de datos, por ejemplo:
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;
}
pero también métodos de administración de transacciones y diagnostoc. Así que ahora - puede usar esta clase en su aplicación si tiene otras fuentes de base de datos o incluso tipos de base de datos, puede crear la siguiente capa de datos (por ejemplo, para Oracle o MSSQL, MySQL ...) cada una de las cuales tiene implementos la misma interfaz, por ejemplo:
IDataBase
y ahora, que tienen algún tipo de fachada, que puede reemplazar dinámicamente según sea necesario. A partir de este momento, el uso de db en la aplicación se concentra en un solo lugar, y es un placer para el programador usarlo, esa es mi sugerencia.
¿Cuánta experiencia en programación tiene? ¿Ha usado bases de datos antes? – Onkelborg
Tengo algunos conocimientos básicos de C# y sé SQL, simplemente no he tenido que acceder a una base de datos en un programa C# antes. – user483267
Esa es una pregunta abierta. Cualquier buena respuesta dependerá de lo que quieras hacer, del marco de tiempo con el que tengas que trabajar y de lo que ya estés familiarizado/cómodo. – jac