de programacion orientada a eventos a programacion orientada a objetos
Como tu bien señalas eso lo podrias hacer en una clase que se encarge del manejo de la bd, para ello en tu clase deberias incluir las distintas referencias que te permitan realizar las distintas operaciones que vas a realizar: base de datos, operaciones de entrada salida, etc. Luego tendrias que declarar algunas variables en tu clase que se encargen de manejar la informacion y demas cosas de la base de datos como objetos de conexion, datasets, etc. Y despues tendrias que crear dentro de la clase los distintos metodos para que tus otras clase o formularios interactuen con ella, mas o menos a groso modo podria ser algo asi
//referencias a librerias
....
using Microsoft.Data;
using Microsoft.Data.SqlClient,
.....
public class UsuarioBD
{
//Objetos necesarios para la conexion
....
private SqlConnection conexion;
private SqlCommand comando;
private DataSet ds=null;
private SqlDataAdapter adapter;
....
public void AgregarDatos(parametro 1, parametro2,....)
{
conexion=new SqlConnection("tu cadena de conexion");
try //Intentamos abrir la conexion y realizar la operacion de agregar datos
{
conexion.Open();
string sql="Tu Consulta SQL" // Aqui armas tu consulta con los datos que le pasas al metodo
comando=new SqlCommand(sql,conexion);
comando.executeNonQuery(); //Esta instruccion ejecuta tu consulta sin traer resultados y es ideal para ejecutar inserts,update o deletes
}
catch(Exception ex)
{
//Aqui va el codigo que se tiene que ejecutar en caso de que no se conecte a la BD o suceda algun fallo grave en el metodo
}
finally //Esto cierra la conexion una vez q termine de hacer las operaciones sin importar si hubo un fallo o no
{
conexion.Close();
}
}
public void ActualizarDatos(parametro 1, parametro2,....)
{
//Aqui iria un codigo similar al anterior solo que es para el caso del update
}
public void EliminarDatos(.....)
{
//Lo mismo que en el anterior solo que para eliminar datos
}
public DataSet RecuperarDatos(parametro 1, parametro2,....)
{
//Aqui seria casi igual a los casos anteriores pero en lugar de usar el comand usariamos el dataadapter con lo que la parte del codigo quedaria
conexion=new SqlConnection("tu cadena de conexion");
try //Intentamos abrir la conexion y realizar la operacion de agregar datos
{
conexion.Open();
string sql="Tu Consulta SQL" // Aqui armas tu consulta con los datos que le pasas al metodo
adapter=new SqlAdapter(sql,conexion);
ds=new DataSet();
adapter.FIll(ds);
}
catch(Exception ex)
{
//Aqui va el codigo que se tiene que ejecutar en caso de que no se conecte a la BD o suceda algun fallo grave en el metodo
}
finally //Esto cierra la conexion una vez q termine de hacer las operaciones sin importar si hubo un fallo o no
{
conexion.Close();
}
return ds;
}
}
y luego en tu formulario lo unico q tendrias que hacer es crear una nueva instancia de tu clase y llamar al metodo correspondiente en donde lo necesites, por ejemplo
public void AgregarDatos()
{
private UsuarioBD usuario=new UsuarioBD();
usuario.AgregarDatos(dato1,dato2,...);
}
Todo esto es practicamente la escencia de los ORM q te habia platicado antes, ya q la idea de esta tecnica es la de hacer que unas clases especiales manejen exclusivamente toda la logica de la BD mientras q otras solo llamen a la informacion de estas ultimas cuando las necesiten y asi no se tenga que mesclar cosas de BD en la capa de interfaz y logica de la aplicacion con la capa de acceso a datos.
Bueno espero que te haya servido este ejemplo, y existos con tu proyecto. Saludos!