Вы находитесь на странице: 1из 11

PROGRAMACION EN BASES DE DATOS LIC.

JONATHAN MORENO

ADO.NET
ADO.NET es un conjunto de clases que permiten acceder a bases de datos en la plataforma .NET. Cuando digo bases de datos me refiero a bases de datos de archivo o relacionales. o El proveedor de datos .NET es un conjunto de componentes que incluye los objetos Connection, Command, DataReader y DataAdapter. o El proveedor de datos .NET est diseado para ser muy sencillo y crear una capa mnima entre el origen de datos y el cdigo, lo que aumenta el rendimiento sin detrimento de la funcionalidad.

Tipos de proveedores administrados


Proveedor administrado OLEDB Proveedor administrado SQL Proveedor administrado ODBC

Proveedor administrado OLEDB


Utiliza proveedores OLE DB originales a travs de la interoperabilidad COM para habilitar el acceso a datos. Para usar el proveedor de datos OLE DB en entornos .NET, tambin se debe emplear un proveedor OLE DB. Los siguientes proveedores son compatibles con ADO.NET: Proveedor OLE DB de Microsoft para SQL Server Proveedor OLE DB de Microsoft para Oracle Proveedor OLE DB Microsoft.Jet.OLEDB.4.0 para Jet Estas clases se encuentran en el espacio de nombres System.Data.OleDb.

Conexin:
Dim OLEDBCn as OLEDBConnection Dim strConn as string StrConn = "Provider=MSDAORA.1;Data id=demo;password=demo;" Source=dseoracle8; user

UNAN FAREM - Chontales

PROGRAMACION EN BASES DE DATOS LIC. JONATHAN MORENO

OLEDBCn = New OLEDBCOnnection OLEDBCn.Connectionstring = strconn OLEDBCn.Open()

Proveedor administrado SQL


Utiliza su propio protocolo para comunicarse con la base de datos de Microsoft SQL Server Estas clases se encuentran en el espacio de nombres System.Data.SqlClient.

Clases
SqlConnection
Representa nuestro medio de conexin a la base de datos. Puede ser creado explicitamente, o implicitamente usando SqlDataAdapter. Para cualquier tipo de acceso a la base de datos es necesario este objeto. un

SqlCommand
Representa el comando SQL que se va ejecutar en la base de datos. Se encuentra en lenguaje DML (Data Definition Language), es decir, puede ser una consulta, para insertar datos, borrar o actualizar. Ejemplos de comandos son: SELECT telefono_cliente FROM clientes (Consulta) INSERT INTO clientes(telefono_cliente) VALUES(22746207) (Insercion) DELETE FROM clientes WHERE telefono_cliente=22746207 (Eliminacion) UPDATE clientes SET telefono_cliente=22746207 WHERE id_cliente=1 (Eliminacion)

UNAN FAREM - Chontales

PROGRAMACION EN BASES DE DATOS LIC. JONATHAN MORENO

SqlDataAdapter
Este objeto se utiliza solamente para ejecutar consultas a la base de datos, es decir, cuando queremos leer informacin de nuestra base de datos lo mas facil es usar este objeto, y solo nos sirve para hacer consultas, no sirve para insertar, actualizar o borrar informacin. Este objeto lo que hace es pasar la informacin que regreso nuestra consulta a una tabla en memoria que se llama DataTable. Una caracterstica de este objeto es que el solo crea nuestra conexin, no necesitamos crear un objeto de conexin separado (aunque si tenemos la opcin de hacerlo).

DataSet y DataTables
Un Datatable es una representacin en memoria de una tabla de la base. Es decir, cuando nosotros ejecutamos una consulta, nuestra consulta regresa una serie de filas indentificadas por una columna cada una. Este serie de filas y columnas es almacenada en un DataTable exactamente como las regreso la consulta que hicimos a la base de datos. El objeto SqlDataAdapter almacene todos los resultados de nuestra consulta en un DataTable. Un DataSet es un conjunto de DataTables. Es decir, un DataSet contiene uno o mas DataTables.

Ejemplo de conexin:
Dim SQLCn as SQLConnection Dim strConn as String StrConn = "Data Source=Vijayab1; user id=sa;password=Contrasea1;Initial Catalog=Neptuno;" SQLCn = New SQLConnection SQLCn.Connectionstring = strconn SQLCn.Open()

Proveedor administrado ODBC


Con el proveedor de datos ODBC .NET slo se han probado los siguientes controladores: Controlador ODBC para Microsoft SQL

UNAN FAREM - Chontales

PROGRAMACION EN BASES DE DATOS LIC. JONATHAN MORENO

Controlador ODBC de Microsoft para Oracle Controlador ODBC para Microsoft Jet Estas clases se encuentran en el espacio de nombres System.Data.Odbc. El proveedor de datos ODBC .NET tambin requiere la instalacin de MDAC 2.6 o posterior

Ejemplo de conexin: Dim odbccn As Odbc.OdbcConnection = New Odbc.OdbcConnection("Driver={SQL SERVER}; SERVER=Vijayab1;UID=sa;PWD=Contrasea1; DATABASE=Neptuno;") Dim odbcda As Odbc.OdbcDataAdapter = New Odbc.OdbcDataAdapter("Select * from Empleados", odbccn) Dim odbcds As New DataSet() odbcda.Fill(odbcds, "Empleados") Me.DataGrid1.DataSource = odbcds.Tables("Empleados")

Componentes de proveedores administrados Objeto Command


Objeto Command
Representa una instruccin SQL o un procedimiento almacenado que ejecutar en un origen de datos.

DataReader
DataReader para recuperar una secuencia de datos de slo lectura y slo hacia delante, a partir de una base de datos.

Ejemplo de DATAREADER
Dim SQLcn As SqlClient.SqlConnection Dim cmd As SqlClient.SqlCommand Dim dr As SqlClient.SqlDataReader Dim strconn As String SQLcn = New SqlClient.SqlConnection() strconn = "Data Source=byri;integrated security=SSPI;Initial catalog=Neptuno"
UNAN FAREM - Chontales

PROGRAMACION EN BASES DE DATOS LIC. JONATHAN MORENO

SQLcn.ConnectionString = strconn SQLcn.Open() cmd = New SqlClient.SqlCommand("Select * from Productos") cmd.Connection = SQLcn dr = cmd.ExecuteReader(CommandBehavior.CloseConnection) While dr.Read Me.ListBox1.Items.Add(dr.GetValue(1)) End While dr.Close()

DataAdapter
Representa un conjunto de comandos de datos y una conexin a base de datos que se utilizan para rellenar el conjunto de datos DataSet y actualizar el origen de datos. Propiedades de DataAdapter SelectCommand InsertCommand DeleteCommand UpdateCommand TableMappings

DATASET

UNAN FAREM - Chontales

PROGRAMACION EN BASES DE DATOS LIC. JONATHAN MORENO

Ejemplo de DataSet
Dim strconn As String strconn = "Provider=SQLOLEDB.1;Data Source=byri;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=Neptuno;" Dim OLEDBCn As OleDb.OleDbConnection = New OleDb.OleDbConnection(strconn) 'OLEDBCn.ConnectionString = strconn Dim cmd As OleDb.OleDbCommand = New OleDb.OleDbCommand("Select * from Productos", OLEDBCn) Dim da As OleDb.OleDbDataAdapter = New OleDb.OleDbDataAdapter() da.SelectCommand = cmd OLEDBCn.Open() Dim ds As New DataSet() da.Fill(ds, "Productos")

Llenar en un DataGrid datos de una tabla Insertamos el control SqlConnection y DataGrid y en el FormLoad escribimos el siguiente cdigo
Dim ds As New DataSet Dim comando As New SqlCommand("Select * From Alumnos", Me.SqlConnection1) Dim da As New SqlDataAdapter(comando) da.Fill(ds, "Alumnos") Me.DataGridView1.DataSource = ds.Tables("Alumnos") Actualizar datos If ds.Tables.Count = 0 Then MessageBox.Show("no hay datos en la tabla") Else daalumnos.Update(ds, "Alumnos") MessageBox.Show(Cambios guardados) End If

UNAN FAREM - Chontales

PROGRAMACION EN BASES DE DATOS LIC. JONATHAN MORENO

Codigos extra
' Limpiar los controles del GroupBox y ' deshabilitarlos hasta que se conecte a la base de datos ' For Each c As Control In Me.GroupBox1.Controls ' Limpiar los textbox If TypeOf c Is TextBox Then c.Text = "" End If ' Deshabilitarlos c.Enabled = False Next
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Me.daalumno.Fill(Me.DataSet11) Actualizadatos() End Sub Sub Actualizadatos() With Me.DataSet11.Alumnos.Rows(Me.BindingContext(Me.DataSet11, "Alumnos").Position) Me.txtnombre.Text = .Item("Nombre") Me.txtapellido.Text = .Item("apellido") Me.txtedad.Text = .Item("edad") End With End Sub Private Sub BtnGuardar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnGuardar.Click 'verifica q todos los controles excepto el txtcodmatricula no esten vacios If TxtCodAlumno.Text = "" Or TxtNombresAlumno.Text = "" Or TxtApellidosAlumnos.Text = "" Or TxtDireccion.Text = "" Or TxtDistrito.Text = "" Or TxtTelefono.Text = "" Or TxtCelular.Text = "" Or TxtFechNacimiento.Text = "" Or CmboCarrera.Text = "" Or CmboTurno.Text = "" Or txtnumdoc.Text = "" Or cbosemestre.Text = "" Or cbosexo.Text = "" Or cbotipodoc.Text = "" Then 'muestra en mensaje MsgBox("Todos los datos son necesarios") 'situa el cursor en la caja txtnombresalumno TxtNombresAlumno.Focus() Else 'inicia la parte del codigo q se quiere controlar los errores Try 'declara las variables de tipo string

UNAN FAREM - Chontales

PROGRAMACION EN BASES DE DATOS LIC. JONATHAN MORENO


Dim idalumno, nombres, apellidos, direccion, distrito, telefono, celular, fchnacimiento, fchmatricula, turno, carrera, observacion, foto, semestre, sexo, tipodoc, numdoc As String 'iguala todas las variables a los respectivos controles y convierte su contenido a mayusculas idalumno = Me.TxtCodAlumno.Text.ToUpper nombres = Me.TxtNombresAlumno.Text.ToUpper apellidos = Me.TxtApellidosAlumnos.Text.ToUpper direccion = Me.TxtDireccion.Text.ToUpper distrito = Me.TxtDistrito.Text.ToUpper telefono = Me.TxtTelefono.Text.ToUpper celular = Me.TxtCelular.Text.ToUpper fchnacimiento = Me.TxtFechNacimiento.Text.ToUpper fchmatricula = Me.TxtFechMatricula.Text.ToUpper turno = Me.CmboTurno.Text.ToUpper carrera = Me.CmboCarrera.Text.ToUpper observacion = Me.TxtObservacion.Text.ToUpper 'la variable foto es = a la variable nombre foto = nombre.ToString sexo = cbosexo.Text.ToUpper tipodoc = cbotipodoc.Text.ToUpper numdoc = txtnumdoc.Text.ToUpper semestre = cbosemestre.Text.ToUpper 'declara la variable cn de tipo nueva coenccion y asigana la cadena de coneccion Dim Cn As New SqlConnection(cadena) 'declara la variable cmd de tipo comando sql 'para ejecutar comandos en este caso insertar datos en la tabla Dim Cmd As New SqlCommand("Insert Into ficha(idalumno, nombres, apellidos, direccion, distrito, telefono, celular, fechanacimiento, fechamatricula, turno, carrera, observacion, foto, sexo, tipodoc, numdoc, semestre) Values ('" & idalumno & "','" & nombres & "','" & apellidos & "','" & direccion & "','" & distrito & "','" & telefono & "','" & celular & "','" & fchnacimiento & "','" & fchmatricula & "','" & turno & "','" & carrera & "','" & observacion & "','" & foto & "','" & sexo & "','" & tipodoc & "','" & numdoc & "','" & semestre & "')", Cn) 'abre la coneccion con open Cn.Open() 'ejecuta el comando Cmd.ExecuteNonQuery() 'muestra el mensaje MsgBox("Su Registro a sido Insertado con Exito", 64, "Mensaje") 'cierra la coenccion Cn.Close() 'declara la variable ex de tipo excepcion Catch Ex As Exception 'declara mensaje de tipo string Dim Mensaje As String 'iguala mensaje a la variable ex y el contenido del error Mensaje = Ex.Message 'muestra en mensaje MsgBox(Mensaje, 16, "Verifique la Sintaxis") 'termina Finally

UNAN FAREM - Chontales

PROGRAMACION EN BASES DE DATOS LIC. JONATHAN MORENO


'llama a recargar() Me.Recargar() 'el boton esta activado Me.BtnNuevo.Enabled = True 'clci automatico en cancelar Me.BtnCancelar.PerformClick() 'desactiva el boton cancelar Me.BtnCancelar.Enabled = False 'desactiva el boton gardar Me.BtnGuardar.Enabled = False 'refresca el label Me.lblpos.Refresh() 'muestra el numero de registro en el label Me.lblpos.Text = "Registro " & fila + 1 & " de " & Me.dstabla.Tables("ficha").Rows.Count 'cierra el control de excepciones End Try End If End Sub Private Sub BtnNuevo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnNuevo.Click 'desactiva los combobox Me.CmboTurno.Enabled = True Me.CmboCarrera.Enabled = True Me.cbosemestre.Enabled = True Me.cbosexo.Enabled = True Me.cbotipodoc.Enabled = True 'llama al procedimiento habilitar con el valor false Habilitar(False) 'activa el menu para insertar foto ContextMenuStrip1.Enabled = True 'el control no muestra ninguna iamgen PictureBox1.Image = Nothing 'llama al prodedimiento limpiar cuadro Me.Limpiar_cuadro() 'habilita el boton guardar Me.BtnGuardar.Enabled = True 'descativa el botonnuevo Me.BtnNuevo.Enabled = False 'habilita el boton cancelar Me.BtnCancelar.Enabled = True 'habilita el boton codigo Me.btncodigo.Enabled = False End Sub Private Sub BtnCancelar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnCancelar.Click 'declara la variable cn de tipo nueva coenccion sql y le asigna la cadena de coneccion Dim Cn As New SqlConnection(cadena) 'la variable consulta usa el comando select de sql para seleccionar la tabla ficha consulta = "Select * From ficha" 'declaramos la variable adaptador de tipo 'nuevo adaptador sql asigandole la consulta y la coneccion

UNAN FAREM - Chontales

PROGRAMACION EN BASES DE DATOS LIC. JONATHAN MORENO


Dim Adaptador As New SqlDataAdapter(consulta, Cn) 'dstabla es = a nuevo dataset Me.dstabla = New DataSet 'abre la coenccion Cn.Open() 'llena el dataset con la tabla ficha Adaptador.Fill(dstabla, "ficha") 'cierra la coneccion Cn.Close() 'llama al procedimiento cargar Me.Cargar() 'llama al procedimiento Me.Recargar() 'habilita en boton nuevo Me.BtnNuevo.Enabled = True 'habilita el boton eliminar Me.BtnEliminar.Enabled = True 'deshabilita el boton eliminar Me.BtnGuardar.Enabled = False 'deshabilita el boton cancelar Me.BtnCancelar.Enabled = False 'llama al procedimiento limpiar cuadro Limpiar_cuadro() 'llama al procedimiento navegadores con el valor true Me.navegadores(True) End Sub Private Sub BtnEliminar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnEliminar.Click 'si el resultadoi del mensaje mostrado es aceptar If MessageBox.Show("Esta seguro que desea eliminar el registro", "Confirmar", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) = Windows.Forms.DialogResult.OK Then 'inicia control de excepcion Try 'declara codmatricula de tipo cadena Dim codmatricula As String 'iguala la variable al control correspondient codmatricula = Me.TxtCodMatricula.Text.ToUpper 'declara la variable cn de tipo nueva coneccion sql y asigna la cadena de coneccion Dim Cn As New SqlConnection(cadena) 'declara la variable cmd de tipo comando sql 'en este caso ultiza el comendo delete para eliminar un registro Dim Cmd As New SqlCommand("DELETE From ficha WHERE (idmatricula='" & codmatricula & "')", Cn) 'abre la coneccion Cn.Open() 'ejecuta el comendo Cmd.ExecuteNonQuery() 'muestra el mensaje MsgBox("Registro Eliminado", 64, "Infomacion") 'cierra la coenccion Cn.Close() 'captura la excepcion es la variable ex

UNAN FAREM - Chontales

PROGRAMACION EN BASES DE DATOS LIC. JONATHAN MORENO


Catch ex As Exception 'muestra el mensaje MsgBox("No se Puede Eliminar el Registro", 16, " Acceso Denegado") 'finaliza Finally 'llama al procedimiento limpiar cuadro Me.Limpiar_cuadro() 'llama al procedimiento recargar Me.Recargar() 'llama al procedimiento cargar Me.Cargar() 'termina el control de excepciones End Try Else 'llama al procedimiento recargar Me.Recargar() 'llama al procdimiento cargar Me.Cargar() End If End Sub

UNAN FAREM - Chontales

Вам также может понравиться