Saturday, August 23, 2014

vb.net (related database)

Imports System.Data.Odbc
Imports System.Data.DataRow
Imports System.Windows.Forms
Public Class Form1
    Public conn As OdbcConnection
    Public comm As OdbcCommand
    Public sqlStr As String
    Dim ods As New DataSet
    Dim odt As New DataTable
    Dim dr As OdbcDataReader
    Dim num As Integer = 0
    Dim cell As DataGridViewCell
    Public ans_id As Integer
    Private Sub connect1()
        conn = New OdbcConnection("dsn=poscafe;uid=root;")
    End Sub
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None
        Me.WindowState = FormWindowState.Maximized
        Me.dgView.DefaultCellStyle.Font = New Font("Tahoma", 15)

        dgView.ColumnHeadersVisible = True

        ' Set the column header style.
        Dim columnHeaderStyle As New DataGridViewCellStyle()

        columnHeaderStyle.BackColor = Color.Beige
        columnHeaderStyle.Font = New Font("Tahoma", 15, FontStyle.Bold)
        dgView.ColumnHeadersDefaultCellStyle = columnHeaderStyle

        Try
            connect1()
            'conn = New OdbcConnection("dsn=poscafe;uid=root;")
            sqlStr = "select * from table_answer"
            conn.Open()
            comm = New OdbcCommand(sqlStr, conn)
            'dr = comm.ExecuteReader
            'If dr.Read Then
            '    MsgBox(dr("answer_id"))
            'End If
            Dim myDA As OdbcDataAdapter = New OdbcDataAdapter(comm)
            myDA.Fill(ods, "table_answer")
            odt = ods.Tables("table_answer")
            dgView.SelectionMode = DataGridViewSelectionMode.FullRowSelect
            dgView.AllowUserToAddRows = False
            dgView.DataSource = odt
            Dim column As DataGridViewColumn = dgView.Columns(1)
            column.Width = 200
            dgView.Columns(0).HeaderText = "Code"
            dgView.Columns(1).HeaderText = "Question ID"
            dgView.ReadOnly = True
            conn.Close()
            ans_id = odt.Rows(num).Item(0)
            id.Text = ans_id
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
    Private Sub Buttonnext_Click(sender As Object, e As EventArgs) Handles Buttonnext.Click
        dgView.Rows(num).Selected = False
        num += 1
        If num > (odt.Rows.Count - 1) Then
            num -= 1
            dgView.Rows(num).Selected = True
            Exit Sub
        End If
        dgView.Rows(num).Selected = True
        id.Text = odt.Rows(num).Item("answer_id").ToString
        ans_id = odt.Rows(num).Item(0)
        dgView.Columns(0).HeaderText = "Code"
    End Sub

    Private Sub Buttonprevious_Click(sender As Object, e As EventArgs) Handles Buttonprevious.Click
        dgView.Rows(num).Selected = False
        num -= 1
        If num < 0 Then
            num += 1
            dgView.Rows(num).Selected = True
            Exit Sub
        End If
        'TextBox1.Text = odt.Rows(num).Item("answer_id").ToString
        dgView.Rows(num).Selected = True
        id.Text = odt.Rows(num).Item("answer_id").ToString
        ans_id = odt.Rows(num).Item(0)
    End Sub

    Private Sub buttonsave_Click(sender As Object, e As EventArgs) Handles buttonsave.Click
        Try
            'comm.Connection = conn
            'connect1()
            conn.Open()
            Dim insertSQL As String = "INSERT INTO table_answer(question_id,answer,image) VALUES (?,?,?)"
            comm = New OdbcCommand(insertSQL, conn)
            comm.Parameters.AddWithValue("question_id", Textquestionid.Text)
            comm.Parameters.AddWithValue("answer", Textanswer.Text)
            comm.Parameters.AddWithValue("image", Textimage.Text)
            comm.ExecuteNonQuery()
            comm.Dispose()
            comm = Nothing
            conn.Close()
            odt.Clear()
            num += 1
            Call Alldata()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
    Private Sub Alldata()
        Call connect1()
        sqlStr = "select * from table_answer"
        conn.Open()
        comm = New OdbcCommand(sqlStr, conn)
        'dr = comm.ExecuteReader
        'If dr.Read Then
        '    MsgBox(dr("answer_id"))
        'End If
        Dim myDA As OdbcDataAdapter = New OdbcDataAdapter(comm)
        myDA.Fill(ods, "table_answer")
        odt = ods.Tables("table_answer")
        dgView.DataSource = odt
        conn.Close()
        dgView.Rows(0).Selected = False
        dgView.Rows(num).Selected = True
        id.Text = odt.Rows(num).Item(0)
    End Sub

    Private Sub dgView_CellClick(sender As Object, e As DataGridViewCellEventArgs) Handles dgView.CellClick
        'MsgBox(dgView.CurrentRow.Index)
        'MsgBox(dgView.Rows(e.RowIndex).Cells(e.ColumnIndex).Value)
        'If IsNumeric(dgView.Rows(e.RowIndex).Cells(0).Value) Then
        'MsgBox(dgView.Rows(e.RowIndex).Cells(0).Value)
        Me.id.Text = dgView.Rows(e.RowIndex).Cells(0).Value
        dgView.Rows(num).Selected = False
        num = dgView.CurrentRow.Index
        ans_id = odt.Rows(num).Item(0)
        'End If
    End Sub

    Private Sub dgView_KeyUp(sender As Object, e As KeyEventArgs) Handles dgView.KeyUp
        'If (dgView.Rows.Count - 1) = dgView.CurrentRow.Index Then
        'MsgBox("no value in this row")
        'Else
        Select Case e.KeyCode
            Case Keys.Up
                'MsgBox(dgView.SelectedRows(0).Cells(0).Value)
                Me.id.Text = dgView.SelectedRows(0).Cells(0).Value
                ans_id = dgView.SelectedRows(0).Cells(0).Value
                num = dgView.CurrentRow.Index
            Case Keys.Down
                'MsgBox(dgView.SelectedRows(0).Cells(0).Value)
                Me.id.Text = dgView.SelectedRows(0).Cells(0).Value
                ans_id = dgView.SelectedRows(0).Cells(0).Value
                 num = dgView.CurrentRow.Index
        End Select
        'End If
    End Sub
    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
        Form2.Show()
    End Sub

    Private Sub update_Click(sender As Object, e As EventArgs) Handles update.Click
        Try
            conn.Open()
            Dim updateSQL As String = "update table_answer set question_id=?,answer=?,image=? where answer_id=?"
            comm = New OdbcCommand(updateSQL, conn)
            comm.Parameters.AddWithValue("question_id", Textquestionid.Text)
            comm.Parameters.AddWithValue("answer", Textanswer.Text)
            comm.Parameters.AddWithValue("image", Textimage.Text)
            comm.Parameters.AddWithValue("answer_id", id.Text)
            comm.ExecuteNonQuery()
            odt.Clear()
            Call Alldata()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
        'comm.Connection = conn
        'connect1()
    End Sub
    Private Sub delete_Click(sender As Object, e As EventArgs) Handles delete.Click
        Dim rowaff As Integer
        Try
            conn.Open()
            Dim deleteSQL As String = "delete from table_answer where answer_id=?"
            comm = New OdbcCommand(deleteSQL, conn)
            comm.Parameters.AddWithValue("answer_id", id.Text)
            rowaff = comm.ExecuteNonQuery()
            If rowaff = 1 And num <> 0 Then
                num -= 1
            End If
            odt.Clear()
            Call Alldata()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
End Class

No comments:

Post a Comment