Il db utilizzato è Oracle e viene restituita una lista di record che puo' essere integrata in una lista di oggetti tipizzata (in questo caso di Employee).
public List<Employee> LoadData() { List<Employee> listEmployee = new List<Employee>(); Employee employee = new Employee(); using (OracleCommand cmd = con.CreateCommand()) { /* write name of stored procedure */ cmd.CommandText = "SCHEMA_DB.test_store_procedure"; cmd.CommandType = CommandType.StoredProcedure; /* input for stored procedure, for example NVarChar */ cmd.Parameters.Add("IN_NAME_FIELD1", OracleType.NVarChar).Value = "test"; cmd.Parameters["IN_NAME_FIELD1"].Direction = ParameterDirection.Input; /* return from store procedure */ cmd.Parameters.Add("OUTPUT", OracleType.Cursor).Direction = ParameterDirection.Output; DataTable dt = new DataTable(); /* call stored procedure */ using (OracleDataReader oracleDataReader = cmd.ExecuteReader(CommandBehavior.CloseConnection)) { dt.Load(oracleDataReader); } /* read values */ foreach (DataRow dr in dt.Rows) { employee = new Employee(); if (dr["NAME"] != DBNull.Value) employee.name = (string)dr["NAME"]; else employee.name = ""; listEmployee.Add(employee); } } return listEmployee; } }