Sunday, 30 October 2011


Refresh Datagridview after update, insert. Resolved

All names are in italian language. As client you can choose an Oledb client instead of Fb client.
As connection string, for embedded server,  you can use this one: strConn= "servertype=1;username=sysdba;password=masterkey;database=" & My.Application.Info.DirectoryPath & "\YourDB.gdb"

We'll name the application main form "MainForm". First, in main form class of your project insert this routine:

    Public Sub GetData(ByVal strSQL As String, ByVal Table As String)

        Dim com As New FbCommand
        Dim adap As New FbDataAdapter
        Dim ds As New DataSet

        Dim connection As FbConnection = New FbConnection(strConn)
        connection.Open()

        adap = New FbDataAdapter(strSQL, strConn)
        adap.Fill(ds, Table)
        Me.DataGridView1.DataSource = ds.Tables(Table)
        connection.Close()
    End Sub

As edit routine use this code:

        ObjConnection.Open()
        Try
            Dim ObjCommand As New FbCommand()
            ObjCommand.Connection = ObjConnection

            ObjCommand.CommandText = "update YourTable set contesto='" & Replace(Me.txtDidascalia.Text, "'", "''") & "', Percorso='" & Replace(Me.txtPercorso.Text, "'", "''") & "'where contatore='" & MaiForm.DataGridView1.CurrentRow.Cells("Contatore").Value & "'"
            ObjCommand.ExecuteNonQuery()
        Catch
            MsgBox("Percorso del file non univoco", MsgBoxStyle.Critical, "Errore di immisione")
            Exit Sub
        Finally
MainForm.GetData("select*from YourTable", "YourTable")

' Columns names are in italian language
MainForm.DataGridView1.Columns("Contesto").HeaderText = "TITLE"
            MainForm.DataGridView1.Columns("Percorso").Visible = False
            MainForm.DataGridView1.Columns("Contesto").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill

        End Try
        Me.Close()

As insert routine we'll use code:

Dim ObjConnection As New FbConnection()
        Dim connection As FbConnection = New FbConnection("servertype=1;username=sysdba;password=masterkey;database=" & My.Application.Info.DirectoryPath & "\YourDB.gdb")
        connection.Open()

        ' Start a local transaction.


        ' Enlist the command in the current transaction.
        Dim command As FbCommand = connection.CreateCommand()


        Try
            command.CommandText = _
              "insert into Immobili" _
            & " (Contesto, Percorso) values ('" & Replace(Me.txtDidascalia.Text, "'", "''") & "','" _
             & Replace(Me.txtPercorso.Text, "'", "''") & "')"
            command.ExecuteNonQuery()

        Catch
            MsgBox("Questo titolo di immagine esiste già. Cambia il titolo")

            Exit Sub
        End Try

        ObjConnection.Close()
        MainForm.GetData("Select*from YourTable order by contesto", "YourTable")
            MainForm.DataGridView1.Columns("Contesto").HeaderText = "TITLE"
            MainForm.DataGridView1.Columns("Percorso").Visible = False
            MainForm.DataGridView1.Columns("Contesto").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
        MainForm.txtSearch.Focus()
Me.Close()
Goodbye
       

0 comments: