La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

INGENIERIA WEB CONEXIONES A BASES DE DATOS EN LA PLATAFORMA .NET

Presentaciones similares


Presentación del tema: "INGENIERIA WEB CONEXIONES A BASES DE DATOS EN LA PLATAFORMA .NET"— Transcripción de la presentación:

1 INGENIERIA WEB CONEXIONES A BASES DE DATOS EN LA PLATAFORMA .NET
Ernesto Gómez Vargas Maestría en Ciencias de la información y las Comunicaciones

2 OBJETIVOS El presente trabajo tiene como objetivo ilustrar como se realiza una conexión a una base de datos mediante la elaboración de una aplicación web sencilla

3 Introducción Se utilizara las siguientes herramientas Plataforma .NET
Lenguaje POO C # Base de Datos ACCESS

4 Introducción La mayoría de bases de datos se apegan a la norma ODBC “Conectividad Abierta a Bases de Datos”, esta norma fue desarrollada por Microsoft para ofrecer una interfaz común para bases de datos. ODBC Tiene sus limitaciones, por ser difícil de usar pues requiere código de aplicación de bajo nivel que varia de acuerdo a la base de datos. En Respuesta, Microsoft ha desarrollado el objeto OLE-DB, un objeto de acceso a datos basado en Windows que ofrece acceso a todos los tipos de datos. OLE-DB es ahora la norma para conectividad a bases de datos e incluye ODBC.

5 Introducción Para la aplicación se cuenta con una base de datos elaborada en ACCESS que tiene las siguientes características Nombre: directorio.mdb Ubicación: C:\directorio.mdb Tabla: directorios Campos de la tabla: cedula,nombre y telefono

6 Introduccion

7 Introducción Los siguientes son los paso para acceder a una base de datos mediante un pagina WEB de ASP:NET Configurar una conexión a la base de datos Abrir la Conexión Llenar un conjunto de Datos con los datos deseados (dataset) Establecer una vista de datos para mostrar los datos (Dataview) Enlazar un control de servidor a una vista de datos mediante el enlace de datos.

8 ADO.NET ADO.NET “Objeto de Datos de Activex”es una evolución del modelo de acceso a datos de ADO que controla directamente los requisitos del usuario para programar aplicaciones escalables. Se diseñó específicamente para el Web, teniendo en cuenta la escalabilidad, la independencia y el estándar XML. ADO.NET utiliza algunos objetos ADO, como Connection y Command, y también agrega objetos nuevos. Algunos de los nuevos objetos clave de ADO.NET son DataSet, DataReader y DataAdapter.

9 ADO.NET

10 ADO.NET La diferencia más importante entre esta fase evolucionada de ADO.NET y las arquitecturas de datos anteriores es que existe un objeto, DataSet, que es independiente y diferente de los almacenes de datos. Por ello, DataSet funciona como una entidad independiente. Se puede considerar el objeto DataSet como un conjunto de registros que siempre está desconectado y que no sabe nada sobre el origen y el destino de los datos que contiene. Dentro de un objeto DataSet, de la misma manera que dentro de una base de datos, hay tablas, columnas, relaciones, restricciones, vistas, etc.

11 ADO.NET El objeto DataAdapter es el objeto que se conecta a la base de datos para llenar el objeto DataSet. A continuación, se vuelve a conectar a la base de datos para actualizar los datos de dicha base de datos a partir de las operaciones realizadas en los datos contenidos en el objeto DataSet. El objeto DataAdapter, que proporciona un puente entre un objeto DataSet y un almacén de datos de origen para recuperar y guardar datos. Para ello, envía solicitudes a los comandos SQL apropiados que se ejecutan en el almacén de datos.

12 ADO.NET Objetos Connection. Para conectar con una base de datos y administrar las transacciones en una base de datos. Objetos Command. Para emitir comandos SQL a una base de datos. Objetos DataSet. Para almacenar datos sin formato, datos XML y datos relacionales, así como para configurar el acceso remoto y programar sobre datos de este tipo. Objetos DataAdapter. Para insertar datos en un objeto DataSet y reconciliar datos de la base de datos.

13 ADO.NET Enlace de datos El enlace de datos le da un gran control sobre sus datos, puede enlazar casi cualquier tipo de datos a cualquier control. La forma de enlazar datos es con la propiedad Datasource de un control o con una expresión de enlace da datos. Esta operación se realiza finalmente para poder visualizar los datos de una consulta en un objeto en el navegador. Controles enlazados a datos. Repeater Datalist DataGrid

14 ADO.NET Repeater: Sencillo, salida a sólo lectura sin soporte inherente para seleccionar o modificar. Deber ser definido manualmente con plantillas. No tiene mecanismo de paginación. Se usa para mostrar datos sencillos. DataList: Ofrece un despliegue de tabla predeterminado y flexible. Es una versión mejorada del Repeater, este control ofrece mas funcionalidad. No tiene paginación. DataGrid: Ofrece un despliegue en cuadricula muy flexible, Contenido modificable, Tiene funciones de ordenamiento, paginación y modificable. Se utiliza para datos provenientes de bases de datos complejas.

15 System.Data.OleDb (Espacio de nombres)
El espacio de nombres System.Data.OleDb es el proveedor de datos de .NET Framework para OLE DB. El proveedor de datos de .NET Framework para OLE DB describe una colección de clases utilizada para obtener acceso a un origen de datos OLE DB en el espacio administrado. Mediante OleDbDataAdapter, se puede rellenar un DataSet que resida en la memoria y que se pueda utilizar para hacer consultas en el origen de datos y actualizarlo.

16 System.Data.OleDb (Espacio de nombres)
Clase Descripción OleDbCommand Representa una instrucción SQL o un procedimiento almacenado que se va a ejecutar en un origen de datos. OleDbConnection Representa una conexión abierta a un origen de datos. OleDbDataAdapter Representa un conjunto de comandos de datos y una conexión de base de datos que se utilizan para rellenar DataSet y actualizar el origen de datos. OleDbDataReader Proporciona el modo de lectura de una secuencia de filas de datos de tipo sólo avance de un origen de datos. Esta clase no se puede heredar. OleDbError Recopila información relacionada con una advertencia o un error devuelto por el origen de datos. Esta clase no se puede heredar. OleDbException Excepción que se produce cuando el proveedor subyacente devuelve una advertencia o un error para un origen de datos de OLE DB. OleDbTransaction Representa una transacción SQL que se va a realizar en un origen de datos.

17 OleDbConnection Representa una conexión abierta a un origen de datos.
ConnectionString Obtiene o establece la cadena que se utiliza para abrir una base de datos. ConnectionTimeout Obtiene el tiempo de espera para intentar establecer una conexión antes de detenerse y generar un error. Database Obtiene el nombre de la base de datos actual o de la base de datos que se va a utilizar una vez que se abra la conexión. DataSource Obtiene el nombre de archivo o el nombre de servidor del origen de datos. Provider Obtiene el nombre del proveedor OLE DB especificado en la cláusula "Provider= " de la cadena de conexión. ServerVersion Obtiene una cadena que contiene la versión del servidor al que está conectado el cliente. State Obtiene el estado actual de la conexión.

18 OleDbConnection Métodos públicos BeginTransaction
Inicia una transacción de base de datos. Close Cierra la conexión al origen de datos. Éste es el método recomendado para cerrar conexiones abiertas. CreateCommand Crea y devuelve un objeto OleDbCommand asociado con OleDbConnection. Open Abre una conexión de base de datos con los valores de propiedad que especifica ConnectionString. GetHashCode Sirve como función hash para un tipo concreto, apropiado para su utilización en algoritmos de hash y estructuras de datos como las tablas hash. ChangeDatabase Cambia la base de datos actual de una OleDbConnection abierta.

19 OleDbTransaction Representa una transacción SQL que se va a realizar en un origen de datos. Connection Obtiene el objeto OleDbConnection asociado a la transacción o una referencia nula (Nothing en Visual Basic) si la transacción ya no es válida. Begin Inicia una transacción de base de datos. Commit Confirma la transacción de base de datos. GetHashCode Sirve como función hash para un tipo concreto, apropiado para su utilización en algoritmos de hash y estructuras de datos como las tablas hash. Rollback Deshace una transacción desde un estado pendiente.

20 OleDbCommand Propiedades públicas
Representa una instrucción SQL o un procedimiento almacenado que se va a ejecutar en un origen de datos. Propiedades públicas CommandText Obtiene o establece la instrucción SQL o el procedimiento almacenado que se va a ejecutar en el origen de datos. CommandTimeout Obtiene o establece el tiempo de espera hasta que se interrumpa el intento de ejecutar un comando y se genere un error. Connection Obtiene o establece OleDbConnection, que utiliza esta instancia de OleDbCommand. Transaction Obtiene o establece OleDbTransaction donde se ejecuta OleDbCommand.

21 OleDbCommand Métodos públicos Cancel
Intenta cancelar la ejecución de OleDbCommand. ExecuteNonQuery Ejecuta una instrucción SQL en Connection y devuelve el número de filas afectadas. ExecuteReader Sobrecargado. Envía Commandext a Connection y crea OleDbDataReader. ExecuteScalar Ejecuta la consulta y devuelve la primera columna de la primera fila del conjunto de resultados devuelto por la consulta. Las demás columnas o filas no se tienen en cuenta. ResetCommandTimeout Restablece el valor predeterminado de la propiedad CommandTimeout

22 OleDbDataAdapter Propiedades Publicas
Representa un conjunto de comandos de datos y una conexión de base de datos que se utilizan para rellenar DataSet y actualizar el origen de datos. Propiedades Publicas DeleteCommand Obtiene o establece una instrucción SQL o un procedimiento almacenado para eliminar registros del conjunto de datos. InsertCommand Obtiene o establece la instrucción SQL o el procedimiento almacenado utilizado para insertar nuevos registros en el origen de datos. SelectCommand Obtiene o establece la instrucción SQL o el procedimiento almacenado utilizado para seleccionar registros del origen de datos. UpdateCommand Obtiene o establece la instrucción SQL o el procedimiento almacenado utilizado para actualizar registros del origen de datos.

23 OleDbDataAdapter Métodos públicos Fill
Sobrecargado. Agrega filas a DataSet o las actualiza para que coincidan con las de un objeto Recordset o Record ADO. FillSchema Sobrecargado. Reemplazado. Agrega DataTable a DataSet y configura el esquema para hacerlo coincidir con el del origen de datos. GetFillParameters Obtiene los parámetros establecidos por el usuario al ejecutar una instrucción SELECT de SQL. GetHashCode Sirve como función hash para un tipo concreto, apropiado para su utilización en algoritmos de hash y estructuras de datos como las tablas hash. Update Sobrecargado. Llama a las instrucciones INSERT, UPDATE o DELETE respectivas para cada fila insertada, actualizada o eliminada en DataSer.

24 Clase directorio.cs Esta es una Clase elaborada C#
Es la encargada de manejar las conexiones y transacciones con la base de datos Esta clase permite hacer inserciones, actualizaciones y consultas a la base de datos.

25 Clase directorio.cs Esta clase necesita los siguientes espacios de nombres: using System; using System.Data; using System.Data.OleDb;

26 Clase directorio.cs public class directorio {
// aquí se declaran todos los métodos de la clase }

27 Clase directorio.cs Se declaran dos variables privadas tipo String para manejar la información de las campos de la tabla en la base de datos. private string nombre; private string telefono; private string cedula;

28 Clase directorio.cs Se declara un método Setnombre el cual no retorna nada y recibe un dato tipo String. Su funcionalidad es colocar el dato que recibe en la variable declarada inicialmente public void setnombre (string nom) { nombre = nom; } De manera similar sucede con el método SetCodigoDiag public void settelefono (string tel) telefono = tel; public void setcedula (string cedu) cedula = cedu;

29 Clase directorio.cs método insertar
Para realizar la inserción de datos en la base de datos se utiliza el método publico Insertar, este método no recibe nada y retorna un String. public string Insertar() { // Aquí va todo la declaración del método }

30 Clase directorio.cs método insertar
System.Data.OleDb.OleDbConnection ObjConn;//Se referencia un objeto ObjConn ObjConn=new System.Data.OleDb.OleDbConnection(); //se instancia el objeto ObjConn string Insertnom; //se referencia un objeto Insertnom tipo string OleDbTransaction miTransaccion;//se referencia un objeto miTransaccion de la clase OleDbTransaction ObjConn.ConnectionString Source=C:\directorio.mdb;"; //mediante la utilización del método ConnectionString del objeto ObjConn se referencia la dirección de la base de datos.

31 Clase directorio.cs método insertar
Try { Insertnom = "INSERT INTO directorios VALUES('" + this.cedula+ "','" + this.nombre+ "','" + this.telefono + "')"; // se pasa a una variable tipo string la sentencia SQL para insertar en la tabla directorios el nombre y el telefono System.Data.OleDb.OleDbCommand comandoSql;// se referencia el objeto comando sql de la clase OleDbCommand comandoSql=new System.Data.OleDb.OleDbCommand(); // se instancia el objeto comando sql ObjConn.Open(); // se abre la conexión miTransaccion = ObjConn.BeginTransaction(); //Inicia una transacción con la base de datos. comandoSql.CommandText = Insertnom; // Pasa la sentencia SQL al objeto commandSql con el método comamandTExt. comandoSql.Connection = ObjConn; //Obtiene o establece OleDbConnection, que utiliza esta instancia de OleDbCommand. comandoSql.Transaction = miTransaccion; //Obtiene o establece OleDbTransaction donde se ejecuta OleDbCommand. comandoSql.ExecuteNonQuery(); //Ejecuta una instrucción SQL miTransaccion.Commit(); //Confirma la transacción con la base de datos return "Los datos se guardaron correctamente"; //Retorna un un mensaje de exito }

32 Clase directorio.cs método insertar
catch(Exception ex) { return ex.Message;// Retorna el mensaje de un posible error } finally ObjConn.Close(); // Cierra la conexión al origen de datos. Éste es el método recomendado para cerrar conexiones abiertas.

33 Clase directorio.cs método modificar
public string modificar() { System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(); // Se crea un objeto de la calse OleDbConnection conn.ConnectionString Source=C:\directorio.mdb;"; //mediante la utilización del método ConnectionString del objeto ObjConn se referencia la dirección de la base de datos. System.Data.OleDb.OleDbCommand myCommand = new System.Data.OleDb.OleDbCommand(); // Aqui se crea un objeto de tipo Comando System.Data.OleDb.OleDbTransaction myTrans; // Aquí se crea un objeto de tipo Transaccion conn.Open(); // Se abre la conexión myCommand.Connection = conn; // como se observa se asigna al objeto de tipo comando la conexión creada previamente myTrans = conn.BeginTransaction(); // Iniciamos la transacción myCommand.Transaction = myTrans;// Asignamos transacción al objeto comando

34 Clase directorio.cs método modificar
try{ myCommand.CommandText directorios SET directorios.telefono = '"+telefono+"' WHERE directorios.nombre= '"+nombre+"'";//Define la sentencia SQL para la actualización de datos. myCommand.ExecuteNonQuery(); //Ejecuta una instrucción SQL en Connection y devuelve el número de filas afectadas. myTrans.Commit(); //Confirma la transacción de base de datos. return "La actualización fue exitosa"; //Retorna un mensaje de éxito } catch(Exception ex) { myTrans.Rollback(); //Deshace una transacción desde un estado pendiente. return “se presento el siguiente problema: " + ex.Message; // Retorna el mensaje de un posible error finally conn.Close(); // Cierra la conexión al origen de datos. Éste es el método recomendado para cerrar conexiones abiertas.

35 Clase directorio.cs método Consultar
public string consultar() { int seleccionados; // se define un entero para manejar el resultado de la consulta System.Data.OleDb.OleDbConnection ObjConn; //Se referencia un objeto ObjConn ObjConn = new System.Data.OleDb.OleDbConnection(); //Se instancia un objeto ObjConn string consunom; // se define un String para manejar la sentencia SQL ObjConn.ConnectionString Source=C:\directorio.mdb;"; consunom * FROM directorios WHERE cedula='" +cedula+ "'";// se pasa a la variable string la Sentencia SQL para consulta System.Data.OleDb.OleDbDataAdapter objSql2; // se referencia un objeto ObjSql2 de la clase OleDbDataAdapter se utilizan para rellenar DataSet y actualizar el origen de datos. objSql2 = new System.Data.OleDb.OleDbDataAdapter(consunom, ObjConn); //se instancia el objeto ObjSql2 que recibe dos parámetros el String con la sentencia SQL y el objeto OleDbConnection

36 Clase directorio.cs método Consultar
System.Data.DataSet ds2; // se referencia el objeto ds2 de la clase Dataset que Representa una caché de memoria interna de datos. ds2 = new System.Data.DataSet(); // se instancia el objeto ds2 de la clase Dataset objSql2.Fill(ds2, “tabla1"); //Agrega filas a DataSet o las actualiza para hacerlas coincidir con las filas del origen de datos utilizando una tabla "tabla1 seleccionados = ds2.Tables["tabla1"].Rows.Count; //retorna el Número de filas agregadas o actualizadas correctamente if (seleccionados == 0) //si no encontró registro { return " No se encuentra el nombre ";// mensaje retornado al no encontrar registro de consulta } else return (string) ds2.Tables["tabla1"].Rows[0]["telefono"]; // Retorna la consulta de la columna teléfono en un string

37 Clase directorio.cs método Borrar
public string borrar() { System.Data.OleDb.OleDbConnection ObjConn;//Se referencia un objeto ObjConn ObjConn=new System.Data.OleDb.OleDbConnection();//se instancia el objeto ObjConn string Insertnom; //se referencia un objeto Insernom tipo sTring OleDbTransaction miTransaccion; //se referencia un objeto miTransaccion de la clase OleDbTransaction ObjConn.ConnectionString Source=C:\directorio1.mdb;"; //mediante la utilización del método ConnectionString del objeto ObjConn se referencia la dirección de la base de datos. try { Insertnom = "DELETE * FROM directorios WHERE nombre='" + nombre+ "'"; // se pasa a una variable tipo string la sentecia SQL para insertar en la tabla directorios el nombre y el telefono System.Data.OleDb.OleDbCommand comandoSql; // se referencia el objeto comando sqlsql de la clase OleDbCommand

38 Clase directorio.cs método Borrar
comandoSql=new System.Data.OleDb.OleDbCommand(); // se instancia el objeto comando sql ObjConn.Open(); // se abre la conexion miTransaccion = ObjConn.BeginTransaction(); //Inicia una transacción con la base de datos. comandoSql.CommandText = Insertnom; // Pasa la sentencia SQL al objeto commandSql con el método comamandTExt Obtiene o establece la instrucción SQL o el procedimiento almacenado que se va a ejecutar en el origen de datos. comandoSql.Connection = ObjConn; //Obtiene o establece OleDbConnection, que utiliza esta instancia de OleDbCommand. comandoSql.Transaction = miTransaccion; //Obtiene o establece OleDbTransaction donde se ejecuta OleDbCommand. comandoSql.ExecuteNonQuery(); //Ejecuta una instrucción SQL en Connection y devuelve el número de filas afectadas. miTransaccion.Commit(); //Confirma la transacción con la base de datos. return "Los datos se Borraron correctamente"; //Retorna un mensaje de éxito } catch(Exception ex) { return ex.Message; // Retorna el mensaje de un posible error finally { ObjConn.Close(); // Cierra la conexión al origen de datos. Éste es el método recomendado para cerrar conexiones abiertas.

39 Clase directorio.cs método consultartodos
public DataSet consultartodos(string n) { System.Data.OleDb.OleDbConnection miConn; //Se referencia un objeto miConn de la clase OleDbConnection miConn = new System.Data.OleDb.OleDbConnection(); //Se instancia un objeto miConn de la clase OleDbConnection miConn.ConnectionString = @"Provider=Microsoft.Jet.OLEDB.4.0;DataSource=C:\directorio1.mdb;"; //mediante la utilización del método ConnectionString del objeto ObjConn se referencia la dirección de la base de datos. string consulta; // Se define una variable consulta de tipo string consulta = "SELECT * FROM directorios WHERE(nombre LIKE '" +n+ "%')"; // se pasa la sentencia SQL de la consulta a la variable tipo string System.Data.OleDb.OleDbDataAdapter miDataAdapter; miDataAdapter = new System.Data.OleDb.OleDbDataAdapter(consulta, miConn);

40 Clase directorio.cs método consultartodos
miDataAdapter = new System.Data.OleDb.OleDbDataAdapter(consulta, miConn); miConn.Open(); // se abre la coneccion System.Data.DataSet ds2; //Se referencia un objeto ds2 de la clase Dataset ds2= new System.Data.DataSet();//Se referencia un objeto de la clase Dataset miDataAdapter.Fill(ds2, "tablavirtual"); //Se instancia un objeto de la clase Dataset return (DataSet) ds2; }

41 WebForm1.aspx Es Necesario crear un formulario como interfaz para manejar las consultas con la base de datos TextBox1= nombre, TextBox2= Telefono Label4 = para retornar mensajes de error o éxito de la consulta Cuatro botones para: Grabar, Consultar, Actualizar e ir a otro formulario de consulta

42 WebForm1.aspx Botón Grabar
private void Button1_Click(object sender, System.EventArgs e) { Web1.directorio miInserta;// Se referencia un objeto de al clase directorio miInserta= new Web1.directorio(); // Se instancia un objeto de al clase directorio miInserta.setnombre(TextBox1.Text); // con el método setnombre se captura el nombre del textbox1 miInserta.settelefono(TextBox2.Text); // con el método settelefono se captura el telefono del textbox2 Label4.Text = miInserta.Insertar(); //el valor que retorna el método insertar se muestra en el label4 }

43 WebForm1.aspx Botón Consultar
private void Button2_Click(object sender, System.EventArgs e) { Web1.directorio miConsul; //Se referencia un objeto de a la clase directorio miConsul = new Web1.directorio(); // Se instancia un objeto de la clase directorio miConsul.setnombre(TextBox1.Text); // con el método setnombre se captura el nombre del textbox1 TextBox2.Text = miConsul.consultar(); //el valor que retorna el método consultar se muestra en el textBox2 }

44 WebForm1.aspx Botón Actualizar
private void Button3_Click(object sender, System.EventArgs e) { Web1.directorio miActualiza; //Se referencia un objeto de la clase directorio miActualiza = new Web1.directorio(); // Se instancia un objeto de al clase directorio miActualiza.setnombre(TextBox1.Text); // con el método setnombre se captura el nombre del textbox1 miActualiza.settelefono(TextBox2.Text); // con el método settelefono se captura el telefono del textbox2 Label4.Text = miActualiza.modificar(); //el valor que retorna el método actualizar se muestra en el label4 TextBox2.Text = miActualiza.consultar();//el valor que retorna el método consultar se muestra en el textBox2 }

45 WebForm1.aspx Botón VerTodos
private void button6_Click(object sender, System.EventArgs e) { Web1.directorio consult;// Se referencia un objeto de al clase directorio consult= new Web1.directorio(); dataGrid1.DataSource = consult.consultartodos(textBox1.Text).Tables["tablavirtual"].DefaultView; }

46 MUCHAS GRACIAS


Descargar ppt "INGENIERIA WEB CONEXIONES A BASES DE DATOS EN LA PLATAFORMA .NET"

Presentaciones similares


Anuncios Google