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;
}
}