CLR: .Net / Mono / Boo / Otros CLR > VB .NET

 Operaciones De Registros En Vb2005

(1/1)

UserCode:
hola, estoy con lo de probar el .Net muy iniciado novaton en ello y me encuentro en la fase de tratar de formular el código de "pan de cada día" con lo que uno puede defenderse en comienzo el cual es las 4 operaciones básicas de una Bd, ya saben, el insertar, consultar, editar y eliminar ya con eso uno se defiende y el resto pues se va viendo en el camino.

Bueno, yo entre tanto leer y probar he llegado a lograr meter datos en une BD Access de la siguiente forma por parametros con el command asi:


--- Código: Text ---             'Conectando con BD Access:            Dim RutaBD As String            RutaBD = My.Application.Info.DirectoryPath & "\BDAccess.mdb" ConexionBD = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & RutaBD)         Dim ordenSQL As OleDb.OleDbCommand        Dim strSQL As String         strSQL = "INSERT INTO "        strSQL = strSQL & "TB_AGENDA(TxtNombre,TxtApellido,AutoCedula,TxtTelefCel,TxtTelefTrab,TxtTelefHab,TxtEmail,TxtCumpleaños,TxtDireccion,TxtComentarios) "        strSQL = strSQL & "VALUES(@Nombre,@Apellido,@Cedula,@TelefCel,@TelefTrab,@TelefHab,@Email,@Cumpleaños,@Direccion,@Comentarios)"         ordenSQL = New OleDbCommand(strSQL, ConexionBD)         'Nombre:        ordenSQL.Parameters.Add(New OleDbParameter("@Nombre", OleDbType.VarWChar, 20))        ordenSQL.Parameters("@Nombre").Value = TxtNombre.Text        'Apellido:        ordenSQL.Parameters.Add(New OleDbParameter("@Apellido", OleDbType.VarWChar, 20))        ordenSQL.Parameters("@Apellido").Value = TxtApellido.Text        'Cedula:        ordenSQL.Parameters.Add(New OleDbParameter("@Cedula", OleDbType.VarWChar, 20))        ordenSQL.Parameters("@Cedula").Value = TxtCedula.Text        'TelefCel:        ordenSQL.Parameters.Add(New OleDbParameter("@TelefCel", OleDbType.VarWChar, 20))        ordenSQL.Parameters("@TelefCel").Value = TxtTelefCel.Text        'TelefTrab:        ordenSQL.Parameters.Add(New OleDbParameter("@TelefTrab", OleDbType.VarWChar, 20))        ordenSQL.Parameters("@TelefTrab").Value = TxtTelefTrab.Text        'TelefHab:        ordenSQL.Parameters.Add(New OleDbParameter("@TelefHab", OleDbType.VarWChar, 20))        ordenSQL.Parameters("@TelefHab").Value = TxtTelefHab.Text        'Email:        ordenSQL.Parameters.Add(New OleDbParameter("@Email", OleDbType.VarWChar, 20))        ordenSQL.Parameters("@Email").Value = TxtEmail.Text        'Cumpleaños:        ordenSQL.Parameters.Add(New OleDbParameter("@Cumpleaños", OleDbType.VarWChar, 20))        ordenSQL.Parameters("@Cumpleaños").Value = DateTimePicker1.Text        'Direccion:        ordenSQL.Parameters.Add(New OleDbParameter("@Direccion", OleDbType.VarWChar, 20))        ordenSQL.Parameters("@Direccion").Value = TxtDireccion.Text        'Comentarios:        ordenSQL.Parameters.Add(New OleDbParameter("@Comentarios", OleDbType.VarWChar, 20))        ordenSQL.Parameters("@Comentarios").Value = TxtComentarios.Text         'Abrimos la conexión, lo mandamos a ejecutar y cerramos la conexión:        ordenSQL.Connection.Open()         ordenSQL.ExecuteNonQuery()        ordenSQL.Connection.Close()         MessageBox.Show("REGISTRO GUARDADO", "REG GUARDADO", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)  
El Editar es igualito a diferencia del Query que cambia a esto, todo lo demás igual:

--- Código: Text ---         'Cedula no pq es el ID:        strSQL = "UPDATE TB_AGENDA SET TxtNombre=@Nombre,TxtApellido=@Apellido,TxtTelefCel=@TelefCel,TxtTelefTrab=@TelefTrab,TxtTelefHab=@TelefHab,TxtEmail=@Email,TxtCumpleaños=@Cumpleaños,TxtDireccion=@Direccion,TxtComentarios=@Comentarios "        strSQL = strSQL & "WHERE AutoCedula=" & Me.TxtCedula.Text  
Y borrar pues esto:

--- Código: Text ---             'Conectando con BD Access:            Dim RutaBD As String            RutaBD = My.Application.Info.DirectoryPath & "\BDAccess.mdb" ConexionBD = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & RutaBD)          Dim ordenSQL As OleDb.OleDbCommand        Dim strSQL As String         strSQL = "DELETE *  FROM TB_AGENDA WHERE AutoCedula=" & Me.TxtCedula.Text         ordenSQL = New OleDbCommand(strSQL, ConexionBD)         'Abrimos la conexión, lo mandamos a ejecutar y cerramos la conexión:        ordenSQL.Connection.Open()         ordenSQL.ExecuteNonQuery()        ordenSQL.Connection.Close()         MessageBox.Show("REGISTRO ELIMINADO", "REG BORRADO", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)  
Pero me interesa hacer estas operaciones por el DataAdapter y DataSet y debo decir que en verdad  :( me ha costado mucho lograr que me funcionen, entonces yo pregunto, que falta en este código para que funcione:

--- Código: Text ---             'Conectando con BD Access:            Dim RutaBD As String            RutaBD = My.Application.Info.DirectoryPath & "\BDAccess.mdb" ConexionBD = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & RutaBD)             Dim strSQL As String            strSQL = "SELECT * FROM TB_AGENDA ORDER BY TxtApellido"            Dim dtp As New OleDbDataAdapter(strSQL, ConexionBD)            Dim ds As DataSet = New DataSet             dtp.Fill(ds, "TB_AGENDA")             Dim Fila As DataRow = ds.Tables(0).NewRow             Fila("TxtNombre") = TxtNombre.Text            Fila("TxtApellido") = TxtApellido.Text            Fila("AutoCedula") = TxtCedula.Text            Fila("TxtTelefCel") = TxtTelefCel.Text            Fila("TxtTelefTrab") = TxtTelefTrab.Text            Fila("TxtTelefHab") = TxtTelefHab.Text            Fila("TxtEmail") = TxtEmail.Text            Fila("TxtCumpleaños") = DateTimePicker1.Value            Fila("TxtDireccion") = TxtDireccion.Text            Fila("TxtComentarios") = TxtComentarios.Text            ds.Tables(0).Rows.Add(Fila)            Dim cb As New OleDbCommandBuilder(dtp)            ds.Tables(0).AcceptChanges()            dtp.Update(ds, "TB_AGENDA")             MessageBox.Show("Registro Guardado", "Guardado", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)        Catch ex As Exception            MessageBox.Show("Error al Intentar Guardar los datos: " & vbCrLf & Err.Description)        End Try  
No da error, hasta saca el aviso de Messegabox de Registro guardado pero al ir a ver en la tabla, no hay nada  :(

PD: perdon que no sea algo para SQL Server porque ahorita Access es lo que tengo más a la mano.

UserCode:
uhmmm... como que nadie a trabajado con VB.NET y Access :(

ya tengo el SQL Server pero en mi compu tengo es XP y no Windows Server :-\

me tomara tiempo pasar al .Net mientras, a seguir con el 6  :lightsabre:  :comp:

.: Raul :.:
Hola, voy a tratar de ayudarte aunq yo uso vb.net con SQL Server. Creo q puedes probar este codigo q es el q tu has puesto pero modificado:

--- Código: Text ---            'Conectando con BD Access:           Dim RutaBD As String           RutaBD = My.Application.Info.DirectoryPath & "\BDAccess.mdb" ConexionBD = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & RutaBD)            Dim strSQL As String           strSQL = "SELECT * FROM TB_AGENDA ORDER BY TxtApellido"           Dim dtp As New OleDbDataAdapter(strSQL, ConexionBD)           Dim ds As DataSet = New DataSet            ConexionBD.Open()           dtp.Fill(ds, "TB_AGENDA")           ConexionBD.Close()            Dim Fila As DataRow = ds.Tables("TB_AGENDA").NewRow            Fila("TxtNombre") = TxtNombre.Text           Fila("TxtApellido") = TxtApellido.Text           Fila("AutoCedula") = TxtCedula.Text           Fila("TxtTelefCel") = TxtTelefCel.Text           Fila("TxtTelefTrab") = TxtTelefTrab.Text           Fila("TxtTelefHab") = TxtTelefHab.Text           Fila("TxtEmail") = TxtEmail.Text           Fila("TxtCumpleaños") = DateTimePicker1.Value           Fila("TxtDireccion") = TxtDireccion.Text           Fila("TxtComentarios") = TxtComentarios.Text           ds.Tables("TB_AGENDA").Rows.Add(Fila)           Dim cb As New OleDbCommandBuilder(dtp)           'ds.Tables("TB_AGENDA").AcceptChanges()           ConexionBD.Open()           dtp.Update(ds, "TB_AGENDA")           ConexionBD.Close()  
Creo q es necesario abrir la conexion para para el Fill como para el Update, aparte, te recomiendo q no llames a las tablas ni a los campos de estas por el numero (ds.Tables(0)), siempre con el nombre (ds.Tables("TB_AGENDA")) pq asi siempre estas seguro de q estas actuando sobre la tabla q quieres.

Espero q te sirva, ya diras como te va.

P.D. SQL Server se puede instalar en XP, aqui puedes descargar SQL Server 2005 Express q es gratis

Sagma:
Hola amigo forero, fijate en esta pagina donde hay un ejemplo complete, y con DB access.

Ejemplo con DB access

suerte

Navegación

[0] Índice de Mensajes

Ir a la versión completa