Tengo un problema con un recupero de datos en mi aplicación :S:
Lo que quiero hacer es invocar un Store Procedure desde oracle pero me bota error de "La conversión especificada no es válida." en la linea que esta en negrita alguien tiene alguna idea del porque?
public List<TB_Menu> mtObtnerTB_MenuPorPerfil(Int32 cnID_UsuarioPerfil)
{
List<TB_Menu> loTB_MenuLista = new List<TB_Menu>();
try
{
using (OracleConnection loConnection = new OracleConnection(attcConnectionString))
{
using (OracleCommand loCmd = loConnection.CreateCommand())
{
loCmd.CommandType = CommandType.StoredProcedure;
loCmd.CommandText = "palTB_MenuPerfilObt";
loCmd.Parameters.Add("c1", OracleDbType.RefCursor).Direction = ParameterDirection.Output;
loCmd.Parameters.Add("VcnID_UsuarioPerfil", OracleDbType.Int32).Value = cnID_UsuarioPerfil;
loConnection.Open();
IDataReader loReader = loCmd.ExecuteReader();
while (loReader.Read())
{
TB_Menu loTB_Menu = new TB_Menu();
loTB_Menu.CnID_Menu = int.Parse(loReader["cnID_Menu"].ToString());
loTB_Menu.CnID_MenuPadre = (int?)((loReader["cnID_MenuPadre"] == DBNull.Value) ? null : loReader["cnID_MenuPadre"]);[/HIGHLIGHT][/HIGHLIGHT]
loTB_Menu.CnOrdenMenu = int.Parse(loReader["cnOrdenMenu"].ToString());
loTB_Menu.CcDescMenu = loReader["ccDescMenu"].ToString();
loTB_Menu.CcDescPrograma = loReader["ccDescPrograma"].ToString();
loTB_Menu.CdFechaCreador = (DateTime)((loReader["cdFechaCreador"] == DBNull.Value) ? DateTime.MinValue : loReader["cdFechaCreador"]);
loTB_Menu.CdFechaActualizador = (DateTime?)((loReader["cdFechaActualizador"] == DBNull.Value) ? null : loReader["cdFechaActualizador"]);
loTB_Menu.CnEstadoReg = int.Parse(loReader["cnEstadoReg"].ToString());
loTB_MenuLista.Add(loTB_Menu);
}
loReader.Close();
loReader.Dispose();
loConnection.Close();
}
}
} catch (ArgumentNullException dbex)
{
throw new System.Exception(dbex.Message);
}
//oCn.Close();
return loTB_MenuLista;
}