//?? public Personas GetAll(int tipo) { SqlConnection oCnn = this.CreateConnection(); using (oCnn) { oCnn.Open(); SqlCommand oCmd = new SqlCommand(); using (oCmd) { oCmd.Connection = oCnn; oCmd.CommandType = CommandType.StoredProcedure; oCmd.CommandText = "personasGetAll"; oCmd.Parameters.AddWithValue("@tipo_persona", tipo); Personas oPersonas = new Personas(); try { SqlDataReader oReader = oCmd.ExecuteReader(); using (oCnn) { while (oReader.Read()) { Persona oPersona = new Persona(); oPersona.ID = Convert.ToInt32(oReader["id_persona"]); oPersona.Nombre = Convert.ToString(oReader["nombre"]); oPersona.Apellido = Convert.ToString(oReader["apellido"]); oPersona.Direccion = Convert.ToString(oReader["direccion"]); oPersona.Email = Convert.ToString(oReader["email"]); oPersona.Telefono = Convert.ToString(oReader["telefono"]); oPersona.FechaNacimiento = Convert.ToDateTime(oReader["fecha_nac"]); oPersona.Legajo = Convert.ToInt32(oReader["legajo"]); oPersona.TipoPersona = (Persona.TiposPersonas)Convert.ToInt32(oReader["tipo_persona"]); if (oPersona.TipoPersona == Persona.TiposPersonas.Alumno) //Es Alumno { oPersona.IDPlan = Convert.ToInt32(oReader["id_plan"]); } /* else //Es Profesor { oPersona.IDPlan = 0; } */ oPersonas.Add(oPersona); oPersona = null; } return oPersonas; } } catch (Exception Ex) { Exception ExcepcionManejada = new Exception("Error al recuperar lista de personas", Ex); throw ExcepcionManejada; } finally { oPersonas = null; } } } }
public Personas GetOnePorLegajo(int legajo) { SqlConnection oCnn = this.CreateConnection(); using (oCnn) { oCnn.Open(); SqlCommand oCmd = new SqlCommand(); using (oCmd) { oCmd.Connection = oCnn; oCmd.CommandType = CommandType.StoredProcedure; oCmd.CommandText = "personasGetOnePorLegajo"; oCmd.Parameters.AddWithValue("@legajo", legajo); //Aunque debemos buscar solo un elemento, siempre devolvemos //una colección. Es más fácil de manipular y controlar Personas oPersonas = new Personas(); //No retornamos DataSets, siempre utilizamos objetos para hacernos //independientes de la estructura de las tablas en el resto //de las capas. Para ellos leemos con el DataReader y creamos //los objetos asociados que se esperan try { //Ejecutamos el comando y retornamos los valores SqlDataReader oReader = oCmd.ExecuteReader(); using (oReader) { while (oReader.Read()) { //si existe algun valor, creamos el objeto y lo almacenamos en la colección Persona oPersona = new Persona(); oPersona.ID = Convert.ToInt32(oReader["id_persona"]); oPersona.Nombre = Convert.ToString(oReader["nombre"]); oPersona.Apellido = Convert.ToString(oReader["apellido"]); oPersona.Direccion = Convert.ToString(oReader["direccion"]); oPersona.Email = Convert.ToString(oReader["email"]); oPersona.Telefono = Convert.ToString(oReader["telefono"]); oPersona.FechaNacimiento = Convert.ToDateTime(oReader["fecha_nac"]); oPersona.Legajo = Convert.ToInt32(oReader["legajo"]); oPersona.TipoPersona = (Persona.TiposPersonas)Convert.ToInt32(oReader["tipo_persona"]); if (oPersona.TipoPersona == 0) //Es Alumno { oPersona.IDPlan = Convert.ToInt32(oReader["id_plan"]); } /* else //Es Profesor { oPersona.IDPlan = 0; } */ //Agregamos el objeto a la coleccion de resultados oPersonas.Add(oPersona); oPersona = null; } //retornamos los valores encontrados return oPersonas; } } catch (Exception Ex) { Exception ExcepcionManejada = new Exception("Error al recuperar legajo de la persona", Ex); throw ExcepcionManejada; } finally { //liberamos la memoria utilizada por los objetos oPersonas = null; } } } }