Dear All.
I am new to the platform c # I am developing an application in 3 layers, in the business logic layer I make a client query which brings me a list and I fill it with a datagridview according to a search criteria, examples by names or by identification number or by customer code or even by addresses.
Here the code
public List<ECliente> GetListClientes(string Criterio)
{
List<ECliente> lista = new List<ECliente>();
IDataReader reader = null;
StringBuilder sb = new StringBuilder();
sb.Append("SELECT");
sb.Append(" CLI.CLI_CODIGO ");
sb.Append(", CLI.CLI_NOMBRE");
sb.Append(", CLI.CLI_RUC");
...
...
...
sb.Append(", CLI.TP_CODIGO ");
sb.Append("FROM CLIENTES CLI, GRUPOS GRU ");
sb.Append("WHERE CLI.GRU_CODIGO = GRU.GRU_CODIGO ");
if (String.IsNullOrEmpty(Criterio))
{
// Todos los Clientes
}
else
{
sb.Append(Criterio);
}
try
{
conexion.Open();
reader = conexion.ExecuteReader(CommandType.Text, sb.ToString());
while (reader.Read())
{
ECliente eCliente = new ECliente();
eCliente.CLI_CODIGO = (Int32)reader["CLI_CODIGO"];
eCliente.CLI_NOMBRE = reader["CLI_NOMBRE"].ToString().Trim();
eCliente.CLI_RUC = reader["CLI_RUC"].ToString().Trim();
eCliente.CLI_DIRECCION = reader["CLI_DIRECCION"].ToString().Trim();
eCliente.CLI_TELEFONO = reader["CLI_TELEFONO"].ToString().Trim();
eCliente.CLI_FAX = reader["CLI_FAX"].ToString().Trim();
eCliente.CLI_CELULAR = reader["CLI_CELULAR"].ToString().Trim();
eCliente.CLI_EMAIL = reader["CLI_EMAIL"].ToString().Trim();
if (reader["CLI_FCH_NACIM"]!=DBNull.Value)
{
eCliente.CLI_FCH_NACIM = Convert.ToDateTime(reader["CLI_FCH_NACIM"]);
};
EGrupo eGrupo = new EGrupo();
eGrupo = nGrupo.GetGrupo(eCliente.GRU_CODIGO);
eCliente.GRUPO = eGrupo;
lista.Add(eCliente);
}
reader.Close();
return lista;
}
catch
{
throw;
}
finally
{
conexion.Close();
}
}
As you can see it brings me a list of entities.
Now how do I get back a class that returns an entity? Ejm:
public ECliente GetCliente(int Codigo) {...}
without having to reprogram the SQL and filling the datareader to the class to optimize the code.
Thanks for your help.