Conectar DatagridView con base de datos Sql Compact 3.5
Aunque no es común realizar un post de SqlCompact 3.5 cuando anteriormente he realizado un post con versión actual 4.0, es necesario para aquellos programadores que hacen uso de las versiones Express de Visual Studio, a diferencia de Visual Basic completo y con la de Visual Basic 2010 Express este último viene integrado el paquete de Sql Compact 3.5 tools. Visual Basic 2010 Express tiene su propio asistente en la cual puedes crear tus propias base de datos y tablas como paquete único para usar base de datos y desarrollar aplicaciones pequeñas ya sea mobiles o escritorio conectadas parcialmente, mientras que en las versiones completas de Visual Studio hay que descargar herramientas o add-ons como https://sqlcetoolbox.codeplex.com/ para anexar a los menús de Visual Studio.
En Visual Basic 2010 Express, conectaremos un base de datos Sql Compact 3.5 muy parecida a la forma de la versión 4.0 del post anterior. Siendo así comencemos:
Una vez creada nuestra base de datos, vamos a realizar la conexión en un modulo, referenciando a la libreria de Sql Compact 3.5 desde el menu Proyecto---->Agregar referencia---->Examinar....etc.
Coloco esta captura por si acaso no se haya cargado la librería automáticamente, aunque no es necesario , nunca esta demás
bueno ahora veamos como codificamos el módulo
Imports System.Data.SqlServerCe
Module Module1
Public path As String = Form1.lbldir.Text
Public conn As New SqlCeConnection("Data Source=" & path + ";Max Database Size=4091;Password=data")
Public sql As String
Public cmd As New SqlCeCommand(sql, conn)
Public Sub conectarse()
Try
conn.Open()
' MsgBox("Conexion exitosa")
Catch ex As Exception
MsgBox(ex.ToString())
End Try
' conn.Close()
End Sub
End Module
Ahora codificamos en el form principalImports System.Data.SqlServerCe
'CARGAR Y ESCRIBIR DATOS EN BASE DE DATOS SQLCOMPACT 3.5 SIN USAR CAPAS
''AUTOR JOSE LUIS MASACHE VALDIVIEZO-2015 http://jossm03.blogspot.com/
Public Class Form1
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btnexam.Click
Try
Dim OpenFileDialog As New OpenFileDialog
OpenFileDialog.InitialDirectory = My.Computer.FileSystem.SpecialDirectories.MyDocuments
OpenFileDialog.Filter = "Base de datos SqlServer Compact Edition 3.5 (*.sdf)|*.sdf|Todos los archivos (*.*)|*.*"
If (OpenFileDialog.ShowDialog(Me) = System.Windows.Forms.DialogResult.OK) Then
Dim FileName As String = OpenFileDialog.FileName
lbldir.Text = FileName
' TODO: agregue código aquí para abrir el archivo.
End If
Catch ex As Exception
MsgBox("error al abrir base de datos", vbCritical)
End Try
btnver.Enabled = True
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles btnver.Click
cargar_productos()
End Sub
Sub cargar_productos()
Try
conectarse()
Dim dt As New DataTable
Dim strSql As String = "SELECT * FROM PRODUCTOS " 'ejecuta la consulta
Dim adp As New SqlCeDataAdapter(strSql, conn) ' inicia el adaptador sujeta a la conexion en el módulo
adp.Fill(dt) ' llena el datatable con los datos
DataGridView1.DataSource = dt ' carga la grid para visualizar
conn.Close()
Catch ex As Exception
ex.ToString()
End Try
End Sub
Private Sub btnGuardar_Click(sender As Object, e As EventArgs) Handles btnGuardar.Click
Guardar_data()
End Sub
Sub Guardar_data()
Try
If textBox1.Text = "" Or TextBox2.Text = "" Then
MsgBox("No existen datos para guardar", vbCritical, "Error")
Else
conectarse()
cmd.CommandType = CommandType.Text
cmd.Connection = conn
sql = "INSERT INTO PRODUCTOS (DESCRIPCION , VALOR) "
sql += "VALUES(@DESCRIPCION , @VALOR)"
' MsgBox(sql)' Ejecutando pruebas sql visual de datos
cmd.Connection = conn
cmd.Parameters.AddWithValue("@DESCRIPCION", textBox1.Text.Trim) ' Asignando parametros
cmd.Parameters.AddWithValue("@VALOR", TextBox2.Text.Trim)
cmd.CommandText = sql 'llamando al comando sql
cmd.ExecuteNonQuery()
cmd.Parameters.Clear() ' borrando parametros ya guardados
End If
Borrar_cajas()
Catch ex As Exception ' manejando posibles errores de duplicidad
If ex.ToString.Contains("valores duplicados") Then
MsgBox("El Registro Ya existe en la Base de Datos")
Else
MsgBox(ex.ToString)
End If
End Try
conn.Close()
cargar_productos() 'actualizando la grid
End Sub
Sub Borrar_cajas()
Try
textBox1.Clear()
TextBox2.Clear()
Catch ex As Exception
End Try
End Sub
Private Sub DataGridView1_RowsAdded(sender As Object, e As DataGridViewRowsAddedEventArgs) Handles DataGridView1.RowsAdded
Try
btnGuardar.Enabled = True
btnver.Enabled = True
Catch ex As Exception
End Try
End Sub
Private Sub DataGridView1_RowsRemoved(sender As Object, e As DataGridViewRowsRemovedEventArgs) Handles DataGridView1.RowsRemoved
Try
If DataGridView1.Rows.Count = 0 Then
btnGuardar.Enabled = True
btnver.Enabled = True
End If
Catch ex As Exception
End Try
End Sub
Private Sub textBox1_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox2.KeyPress, textBox1.KeyPress, btnGuardar.KeyPress
If e.KeyChar = "."c Then
e.Handled = True
SendKeys.Send(",")
End If
If e.KeyChar = ChrW(Keys.Enter) Then
e.Handled = True
SendKeys.Send("{TAB}")
End If
End Sub
End Class
Les dejo un captura ejecutando:Y eso es todo amigos, Uds pueden ampliar sus características, les dejo en el link mi ejemplo y nos vemos en otro post.
https://drive.google.com/open?id=0B-UGWA03tc5ZMFZpOFY2QlcxTzA


Comentarios
Publicar un comentario