Aprender Ado.net

22/05/2006 - 01:17 por Marcelo | Informe spam
Hola!

Me instalé el vb 2005 express edition, seguí todo el "Manual de introducción
a Visual Basic 2005 Express Edition" pero llegué a la parte de ado.net y no
llego a entenderlo.

Yo estaba acostumbrado a usar dao, y las cosas de ado que hacía eran
copiando y pegando...

Alguien me puede explicar de forma sencilla como acceder a una base de datos
Access97 con ado.net? basicamente, abrir la base, hacer una consulta,
actualizar alguna tabla, y eliminar algun registro.
O sino que me indiquen algun buen link que sea claro de entender

Desde ya muchas gracias!!!

Saludos,
Marcelo
 

Leer las respuestas

#1 Leonardo Azpurua [mvp vb]
22/05/2006 - 05:23 | Informe spam
"Marcelo" <marcelo39(AT)hotmail.com> escribió en el mensaje
news:
Hola!

Me instalé el vb 2005 express edition, seguí todo el "Manual de
introducción a Visual Basic 2005 Express Edition" pero llegué a la parte
de ado.net y no llego a entenderlo.

Yo estaba acostumbrado a usar dao, y las cosas de ado que hacía eran
copiando y pegando...

Alguien me puede explicar de forma sencilla como acceder a una base de
datos Access97 con ado.net? basicamente, abrir la base, hacer una
consulta, actualizar alguna tabla, y eliminar algun registro.
O sino que me indiquen algun buen link que sea claro de entender

Desde ya muchas gracias!!!



Hola, Marcelo:

Mira este trozo de codigo:

' Hay que importar las referencias al ensamblado que incluye la interfaz
OleDB:
Imports System.Data.OleDB
...
' Las Conexiones (OleDB.Connection) son mas o menos equivalentes a las
' Database de DAO:
' Lo primero es asignarle una cadena de conexion.
' En www.carlprothman.net puedes consultar las cadenas de conexion para una
' variedad de proveedores OLEDB. Esta es para Access:
Dim cn As OleDb.OleDbConnection = New OleDb.OleDbConnection( _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=C:\Mis Documentos\DatosCL\Mansion\BO01.MDB;" & _
"User ID=Admin;" & _
"Password=")
cn.Open()
' Para ejecutar sentencias usas un objeto OleDB.Command:
' el primer argumento (con esta implementacion de New) pasas el texto SQL
' en el segundo pasas una referencia a una Conexion abierta:
Dim cm As New OleDb.OleDbCommand("SELECT * FROM Clientes WHERE Codigo =
'036'", cn)
' Un OleDB.Datareader es una referencia a un cursor de solo lectura y acceso
secuencial:
Dim dr As OleDb.OleDbDataReader = cm.ExecuteReader
' Read es una funcion que devuelve False si no hay nada que leer:
If Not dr.Read() Then
MsgBox "No hay datos para el cliente"
dr.Close()
cm.Dispose()
cn.Close()
Exit Sub
End If
' El metodo GetString(n) te devuelve el valor de cadena contenido en la
n-sima columna:
' si no sabes el tipo, puedes usar GetValue: es un poco mas lenta, ya que
ADO debe determinar
' el tipo del valor a devolver.
Dim s As String = dr.GetString(1)
' Cierras el DataReader
dr.Close()
' y haces algo con el valor leido...
Me.Text = s
' Ahora le cambiamos el nombre al cliente:
' Primero asignamos a la propiedad CommandText del objeto OleDB.Command
' la sentencia SQL que queremos ejecutar
cm.CommandText = "UPDATE Clientes SET Nombre = 'Gualberto Sanz' WHERE
Codigo = '036'"
' luego ejecutamos la sentencia: nota que para las "consultas de accion" se
usa ExecuteNonQuery
cm.ExecuteNonQuery()

' Ahora leemos el registro actualizado
cm.CommandText = "SELECT * FROM Clientes WHERE Codigo = '036'"
dr = cm.ExecuteReader()
dr.Read()
MsgBox("El nombre fue cambiado a " & dr.GetString(1))
dr.Close()

' Por ultimo restablecemos el valor original
cm.CommandText = "UPDATE Clientes SET Nombre = 'Alberto Aurrecoetxea'
WHERE Codigo = '036'"
cm.ExecuteNonQuery()

' Liberamos los recursos asociados con el Command:
cm.Dispose()

' Y cerramos la conexion:
cn.Close()

Para los comandos DELETE e INSERT el mecanismo es el mismo que se ilustra
para los UPDATE: solo cambia, por supuesto, la sentencia SQL que pasamos a
CommandText.

Este es el uso mas simple (y para mi es suficiente). Otra opcion es utilizar
DataAdapters, que te devuelven DataTables: son mas flexibles, y trabajan
desconectados del servidor.


Salud!

Preguntas similares