• Jueves 14 de Noviembre de 2024, 16:56

Autor Tema:  Operaciones De Registros En Vb2005  (Leído 1293 veces)

UserCode

  • Miembro MUY activo
  • ***
  • Mensajes: 338
    • Ver Perfil
Operaciones De Registros En Vb2005
« en: Martes 7 de Noviembre de 2006, 21:37 »
0
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
  1.  
  2.             'Conectando con BD Access:
  3.             Dim RutaBD As String
  4.             RutaBD = My.Application.Info.DirectoryPath & "\BDAccess.mdb"
  5.  
  6. ConexionBD = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & RutaBD)
  7.  
  8.         Dim ordenSQL As OleDb.OleDbCommand
  9.         Dim strSQL As String
  10.  
  11.         strSQL = "INSERT INTO "
  12.         strSQL = strSQL & "TB_AGENDA(TxtNombre,TxtApellido,AutoCedula,TxtTelefCel,TxtTelefTrab,TxtTelefHab,TxtEmail,TxtCumpleaños,TxtDireccion,TxtComentarios) "
  13.         strSQL = strSQL & "VALUES(@Nombre,@Apellido,@Cedula,@TelefCel,@TelefTrab,@TelefHab,@Email,@Cumpleaños,@Direccion,@Comentarios)"
  14.  
  15.         ordenSQL = New OleDbCommand(strSQL, ConexionBD)
  16.  
  17.         'Nombre:
  18.         ordenSQL.Parameters.Add(New OleDbParameter("@Nombre", OleDbType.VarWChar, 20))
  19.         ordenSQL.Parameters("@Nombre").Value = TxtNombre.Text
  20.         'Apellido:
  21.         ordenSQL.Parameters.Add(New OleDbParameter("@Apellido", OleDbType.VarWChar, 20))
  22.         ordenSQL.Parameters("@Apellido").Value = TxtApellido.Text
  23.         'Cedula:
  24.         ordenSQL.Parameters.Add(New OleDbParameter("@Cedula", OleDbType.VarWChar, 20))
  25.         ordenSQL.Parameters("@Cedula").Value = TxtCedula.Text
  26.         'TelefCel:
  27.         ordenSQL.Parameters.Add(New OleDbParameter("@TelefCel", OleDbType.VarWChar, 20))
  28.         ordenSQL.Parameters("@TelefCel").Value = TxtTelefCel.Text
  29.         'TelefTrab:
  30.         ordenSQL.Parameters.Add(New OleDbParameter("@TelefTrab", OleDbType.VarWChar, 20))
  31.         ordenSQL.Parameters("@TelefTrab").Value = TxtTelefTrab.Text
  32.         'TelefHab:
  33.         ordenSQL.Parameters.Add(New OleDbParameter("@TelefHab", OleDbType.VarWChar, 20))
  34.         ordenSQL.Parameters("@TelefHab").Value = TxtTelefHab.Text
  35.         'Email:
  36.         ordenSQL.Parameters.Add(New OleDbParameter("@Email", OleDbType.VarWChar, 20))
  37.         ordenSQL.Parameters("@Email").Value = TxtEmail.Text
  38.         'Cumpleaños:
  39.         ordenSQL.Parameters.Add(New OleDbParameter("@Cumpleaños", OleDbType.VarWChar, 20))
  40.         ordenSQL.Parameters("@Cumpleaños").Value = DateTimePicker1.Text
  41.         'Direccion:
  42.         ordenSQL.Parameters.Add(New OleDbParameter("@Direccion", OleDbType.VarWChar, 20))
  43.         ordenSQL.Parameters("@Direccion").Value = TxtDireccion.Text
  44.         'Comentarios:
  45.         ordenSQL.Parameters.Add(New OleDbParameter("@Comentarios", OleDbType.VarWChar, 20))
  46.         ordenSQL.Parameters("@Comentarios").Value = TxtComentarios.Text
  47.  
  48.         'Abrimos la conexión, lo mandamos a ejecutar y cerramos la conexión:
  49.         ordenSQL.Connection.Open()
  50.         ordenSQL.ExecuteNonQuery()
  51.         ordenSQL.Connection.Close()
  52.  
  53.         MessageBox.Show("REGISTRO GUARDADO", "REG GUARDADO", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)
  54.  
  55.  

El Editar es igualito a diferencia del Query que cambia a esto, todo lo demás igual:
Código: Text
  1.  
  2.         'Cedula no pq es el ID:
  3.         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 "
  4.         strSQL = strSQL & "WHERE AutoCedula=" & Me.TxtCedula.Text
  5.  
  6.  

Y borrar pues esto:
Código: Text
  1.  
  2.             'Conectando con BD Access:
  3.             Dim RutaBD As String
  4.             RutaBD = My.Application.Info.DirectoryPath & "\BDAccess.mdb"
  5.  
  6. ConexionBD = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & RutaBD)
  7.  
  8.  
  9.         Dim ordenSQL As OleDb.OleDbCommand
  10.         Dim strSQL As String
  11.  
  12.         strSQL = "DELETE *  FROM TB_AGENDA WHERE AutoCedula=" & Me.TxtCedula.Text
  13.  
  14.         ordenSQL = New OleDbCommand(strSQL, ConexionBD)
  15.  
  16.         'Abrimos la conexión, lo mandamos a ejecutar y cerramos la conexión:
  17.         ordenSQL.Connection.Open()
  18.         ordenSQL.ExecuteNonQuery()
  19.         ordenSQL.Connection.Close()
  20.  
  21.         MessageBox.Show("REGISTRO ELIMINADO", "REG BORRADO", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)
  22.  
  23.  

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
  1.  
  2.             'Conectando con BD Access:
  3.             Dim RutaBD As String
  4.             RutaBD = My.Application.Info.DirectoryPath & "\BDAccess.mdb"
  5.  
  6. ConexionBD = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & RutaBD)
  7.  
  8.             Dim strSQL As String
  9.             strSQL = "SELECT * FROM TB_AGENDA ORDER BY TxtApellido"
  10.             Dim dtp As New OleDbDataAdapter(strSQL, ConexionBD)
  11.             Dim ds As DataSet = New DataSet
  12.  
  13.             dtp.Fill(ds, "TB_AGENDA")
  14.  
  15.             Dim Fila As DataRow = ds.Tables(0).NewRow
  16.  
  17.             Fila("TxtNombre") = TxtNombre.Text
  18.             Fila("TxtApellido") = TxtApellido.Text
  19.             Fila("AutoCedula") = TxtCedula.Text
  20.             Fila("TxtTelefCel") = TxtTelefCel.Text
  21.             Fila("TxtTelefTrab") = TxtTelefTrab.Text
  22.             Fila("TxtTelefHab") = TxtTelefHab.Text
  23.             Fila("TxtEmail") = TxtEmail.Text
  24.             Fila("TxtCumpleaños") = DateTimePicker1.Value
  25.             Fila("TxtDireccion") = TxtDireccion.Text
  26.             Fila("TxtComentarios") = TxtComentarios.Text
  27.             ds.Tables(0).Rows.Add(Fila)
  28.             Dim cb As New OleDbCommandBuilder(dtp)
  29.             ds.Tables(0).AcceptChanges()
  30.             dtp.Update(ds, "TB_AGENDA")
  31.  
  32.             MessageBox.Show("Registro Guardado", "Guardado", MessageBoxButtons.OK, MessageBoxIcon.Information, MessageBoxDefaultButton.Button1)
  33.         Catch ex As Exception
  34.             MessageBox.Show("Error al Intentar Guardar los datos: " & vbCrLf & Err.Description)
  35.         End Try
  36.  
  37.  

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.
Si esto es Leído por accidente, induzca al vomito

UserCode

  • Miembro MUY activo
  • ***
  • Mensajes: 338
    • Ver Perfil
Re: Operaciones De Registros En Vb2005
« Respuesta #1 en: Domingo 12 de Noviembre de 2006, 15:26 »
0
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:
Si esto es Leído por accidente, induzca al vomito

.: Raul :.

  • Nuevo Miembro
  • *
  • Mensajes: 6
    • Ver Perfil
Re: Operaciones De Registros En Vb2005
« Respuesta #2 en: Martes 14 de Noviembre de 2006, 13:21 »
0
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
  1.  
  2.            'Conectando con BD Access:
  3.            Dim RutaBD As String
  4.            RutaBD = My.Application.Info.DirectoryPath & "\BDAccess.mdb"
  5.  
  6. ConexionBD = New OleDb.OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & RutaBD)
  7.  
  8.            Dim strSQL As String
  9.            strSQL = "SELECT * FROM TB_AGENDA ORDER BY TxtApellido"
  10.            Dim dtp As New OleDbDataAdapter(strSQL, ConexionBD)
  11.            Dim ds As DataSet = New DataSet
  12.  
  13.            ConexionBD.Open()
  14.            dtp.Fill(ds, "TB_AGENDA")
  15.            ConexionBD.Close()
  16.  
  17.            Dim Fila As DataRow = ds.Tables("TB_AGENDA").NewRow
  18.  
  19.            Fila("TxtNombre") = TxtNombre.Text
  20.            Fila("TxtApellido") = TxtApellido.Text
  21.            Fila("AutoCedula") = TxtCedula.Text
  22.            Fila("TxtTelefCel") = TxtTelefCel.Text
  23.            Fila("TxtTelefTrab") = TxtTelefTrab.Text
  24.            Fila("TxtTelefHab") = TxtTelefHab.Text
  25.            Fila("TxtEmail") = TxtEmail.Text
  26.            Fila("TxtCumpleaños") = DateTimePicker1.Value
  27.            Fila("TxtDireccion") = TxtDireccion.Text
  28.            Fila("TxtComentarios") = TxtComentarios.Text
  29.            ds.Tables("TB_AGENDA").Rows.Add(Fila)
  30.            Dim cb As New OleDbCommandBuilder(dtp)
  31.            'ds.Tables("TB_AGENDA").AcceptChanges()
  32.            ConexionBD.Open()
  33.            dtp.Update(ds, "TB_AGENDA")
  34.            ConexionBD.Close()
  35.  
  36.  

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

  • Miembro MUY activo
  • ***
  • Mensajes: 390
  • Nacionalidad: bo
    • Ver Perfil
Re: Operaciones De Registros En Vb2005
« Respuesta #3 en: Martes 14 de Noviembre de 2006, 15:52 »
0
Hola amigo forero, fijate en esta pagina donde hay un ejemplo complete, y con DB access.

Ejemplo con DB access

suerte
Sagma