Acceso a base de datos ClaseOracleBD Cadena de conexión web.config <connectionStrings> <add name="ConnectionString1" connectionString= "Data Source=oradesa;User ID=pruebaDB;Password=xxxx;Unicode=True" providerName="System.Data.OracleClient"/> </connectionStrings> Uso ConfigurationManager.ConnectionStrings["ConnectionString1"].ConnectionString; Referéncias Examinar \ToolsNet\DLLs\ClaseOracleBD.dll .NET System.Data.OracleClient using ua; using System.Data.OracleClient; Uso Creación del objeto ClaseOracleBD baseDatos; baseDatos = new ClaseOracleBD(); ó ClaseOracleBD baseDatos = new ClaseOracleBD(); Asociar una cadena de conexión baseDatos.CadenaConexion = ConfigurationManager.ConnectionStrings["ConnectionString1"].ConnectionString; Ejecutar sentencias Ejecutar sentencias SQL baseDatos.TextoComando = "SELECT descloc FROM localizaciones"; if (baseDatos.Rs.HasRows) { while (baseDatos.Rs.Read()) { Label1.Text += baseDatos.Rs["descloc"] + "<br/>"; } } Ejecutar sentencias con Bind Variables Crear la sentencia baseDatos.TextoComando = "SELECT nombre FROM usuarios " + "WHERE codloc=:pCodLoc AND tipoUsu =:pTipoUsu"; Dar valor a los parámetros CrearParametro (nombre, tipo, dirección, tamaño, valor) baseDatos.CrearParametro("pCodLoc", OracleType.Number, System.Data.ParameterDirection.Input, 0, codLoc); baseDatos.CrearParametro("pTipoUsu", OracleType.VarChar, System.Data.ParameterDirection.Input, tipoUsu.Length, tipoUsu); Ejecutar procedimientos // Definimos el tipo de comando baseDatos.TipoComando= CommandType.StoredProcedure; // Declaramos el procedimiento sin parámetros baseDatos.TextoComando= "PRUEBA_PK.Almacenar"; // Declaramos los parámetros, no importa el orden baseDatos.CrearParametro("param1", OracleType.Number, System.Data.ParameterDirection.Input, 0, valorParam1); baseDatos.CrearParametro("param2", OracleType.VarChar, System.Data.ParameterDirection.Input, valorParam2.Length, valorParam2); //Ejecutamos el procedimiento baseDatos.Ejecuta(); Clases de acceso a datos ● ClaseAlumno ● ClaseEstudio ● ClaseEstudios Clases de acceso a datos Métodos de acceso a datos public bool Carga(int numeroExpediente) { ClaseOracleBD baseDeDatos = new ClaseOracleBD(); baseDeDatos.CadenaConexion = _cadenaConexion; baseDeDatos.TextoComando = "SELECT codexp, nombre, apellidos, email, codest estudio FROM cnet_valumnos WHERE codexp=:pNumExpediente"; baseDeDatos.CrearParametro("pNumExpediente", OracleType.Number, ParameterDirection.Input, 0, numeroExpediente); if (baseDeDatos.Rs.HasRows) { while (baseDeDatos.Rs.Read()) { _nombre = (string)baseDeDatos.Rs["nombre"]; _apellidos = (string)baseDeDatos.Rs["apellidos"]; _correoElectronico = (string)baseDeDatos.Rs["email"]; _estudios.Add(new ClaseEstudio(Convert.ToInt32(baseDeDatos.Rs["codEst"]), (string)baseDeDatos.Rs["estudio"])); } } baseDeDatos.Close(); } Métodos de acceso a datos public bool Guarda() { ClaseOracleBD baseDeDatos = new ClaseOracleBD(); baseDeDatos.CadenaConexion = _cadenaConexion; baseDeDatos.TipoComando = CommandType.StoredProcedure; baseDeDatos.TextoComando = "PK_CURSO.ALTA_ALUMNO"; baseDeDatos.CrearParametro("pCodExpediente", OracleType.Number, System.Data.ParameterDirection.InputOutput, 0, _numeroExpediente); baseDeDatos.CrearParametro("pNombre", OracleType.VarChar, System.Data.ParameterDirection.Input, 100, _nombre); baseDeDatos.CrearParametro("pApellidos", OracleType.VarChar, System.Data.ParameterDirection.Input, 150, _apellidos); baseDeDatos.CrearParametro("pEmail", OracleType.VarChar, System.Data.ParameterDirection.Input, 200, _correoElectronico); baseDeDatos.Ejecuta(); baseDeDatos.Close(); return (true); } Métodos de acceso a datos public static List<ClaseEstudio> filtrarAlumno(int expediente) { List<ClaseEstudio> poolEstudios = new List<ClaseEstudio>(); ClaseOracleBD baseDeDatos; string consultaSQL; baseDeDatos = new ClaseOracleBD(); baseDeDatos.CadenaConexion = _cadenaConexion; consultaSQL = "SELECT codest, estudio FROM cnet_vusuarios WHERE codexp=:pNumeroExpediente"; baseDeDatos.TextoComando = consultaSQL; baseDeDatos.CrearParametro("pNumeroExpediente", OracleType.Number, ParameterDirection.Input, 0, expediente); if (baseDeDatos.Rs.HasRows) { while (baseDeDatos.Rs.Read()) poolEstudios.Add(new ClaseEstudio(Convert.ToInt32(baseDeDatos.Rs["codest"]), string)baseDeDatos.Rs["estudio"])); } baseDeDatos.Close(); return (poolEstudios); }