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
Ir a la versión completa