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 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 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

Entradas populares de este blog

Imprimir directamente ReportViewer a impresora predeterminada

DevComponents DotnetBar 12.5.0.2

Metodo Iterativo Gauss-Seidel en Visual Basic