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 ModuleAhora codificamos en el form principal
Imports 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 ClassLes 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