Bien mira, yo trabajo en 3 Capas, Presentación, Negocio y Datos, te diré que tengo en cada capa y te pasare los métodos y ya tu los pones donde quieras o donde los necesites.
En la capa de datos tengo este método que me ejecuta un procedimiento almacenado de SQL, si requieres parámetros tengo el mismo método sobrecargado, si lo requieres con parámetros me comentas.
Código:
public DataTable ObtenerDatosComoDataTable(string NombreProcedimientoAlmacenado)
{
SqlCommand sqlCmd = new SqlCommand();
SqlDataAdapter sqlAdp = new SqlDataAdapter(sqlCmd);
DataTable sqlTbl;
try
{
if (mSqlCnn != null && mSqlCnn.State == ConnectionState.Closed)
{
mSqlCnn.Open();
}
sqlCmd.CommandText = NombreProcedimientoAlmacenado;
sqlCmd.Connection = mSqlCnn;
sqlCmd.CommandTimeout = 3600000;
sqlCmd.CommandType = CommandType.StoredProcedure;
sqlTbl = new DataTable();
sqlAdp.Fill(sqlTbl);
return sqlTbl;
}
catch (Exception ex)
{
throw new Exception(String.Format("{0}.ObtenerDatosComoDataTable - {1} - {2}", NombreModulo, ex.Source, ex.Message));
}
finally
{
if ((mSqlCnn != null) & mSqlCnn.State == ConnectionState.Open)
{
mSqlCnn.Close();
}
if ((sqlCmd != null))
{
sqlCmd.Dispose();
}
if ((sqlAdp != null))
{
sqlAdp.Dispose();
}
}
}
En la capa de Negocio tengo este método que invoca al de arriba y ejecuta el stores y me regresa un DataTable.
Código:
public DataTable GetDatos(string Conn)
{
try
{
db.Conexion(Conn);
return db.ObtenerDatosComoDataTable("spS_StoredProcedure");
}
catch (Exception ex)
{ throw ex; }
}
Y en la capa de presentación tengo este método donde cacho el DataTable y por medio del DataTable que lleno un CheckedListBox
Código:
void ObtineBotonesBarra()
{
try
{
DataTable dt = _clsComunMenuNegocio.Comun_GetProcessBar(strConnHome);
if (dt.Rows.Count > 0)
{
chkListBotones.DataSource = dt;
chkListBotones.ValueMember = dt.Columns[0].ToString();
chkListBotones.DisplayMember = dt.Columns[1].ToString();
chkListBotones.SelectedValue = 0;
}
}
catch (Exception ex)
{ throw ex; }
}
Y es todo..!!
Coméntame si más o menos le entendiste y si necesitas algo más, esto está preparado para trabajar en tres capas.
Cualquier duda te puedo asesorar para tengas bien estructurado tu proyecto.