在VB.NET中搜索,添加,编辑,删除数据

时间:2014-04-11 15:18:02

标签: vb.net

我正在使用带有OleDb数据库的vb.net应用程序。 在表单中,我有数据的搜索,添加,编辑,删除按钮。 虽然搜索数据正常,但添加,编辑,删除不起作用。 这是我的代码。

Imports System.Data.OleDb

Public Class Form1
    Dim CN As New OleDb.OleDbConnection

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Me.RefreshData()
    CN = New OleDb.OleDbConnection
    CN.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Satyam\Documents\Satyam.accdb;"
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Src.Click

    Dim CN As New OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\Satyam\Documents\Satyam.accdb;" & "Persist Security Info=False;" & "Jet OLEDB:Database Password=" & "your pass" & ";")
    Dim cmd As OleDbCommand
    Dim dr As OleDbDataReader
    Try
        CN.Open()
        cmd = New OleDbCommand("SELECT *  from DailyWorkLoadRegister WHERE ID=" & txtID.Text & "", CN)

        dr = cmd.ExecuteReader
        If dr.Read Then
            Me.txtID.Text = dr("ID")
            Me.txtAge.Text = dr("Age")
            Me.txtSex.Text = dr("Sex")
            Me.txtFullName.Text = dr("FullName")
            Me.txtWard.Text = dr("Ward")

            dr.Close()
        Else
            MsgBox("No Record")
        End If
    Catch
    End Try

    CN.Close()
End Sub

Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click
    Me.Close()
End Sub

Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click
    Me.txtID.Text = ""
    Me.txtAge.Text = ""
    Me.txtFullName.Text = ""
    Me.txtSex.Text = ""
    Me.txtWard.Text = ""
    Me.txtID.Tag = ""

    Me.btnedit.Enabled = True

    Me.btnAdd.Text = "Add"

End Sub

Private Sub RefreshData()
    If Not CN.State = ConnectionState.Open Then
        CN.Open()
    End If
    Dim da As New OleDb.OleDbDataAdapter("SELECT ID as [ID], " & _
                                        "FullName as [Name], Sex, Age, Ward " & _
                                        " FROM DailyWorkLoadRegister ORDER BY ID", CN)
    Dim dt As New DataTable

    da.Fill(dt)

    Me.dgvData.DataSource = dt

    CN.Close()
End Sub
Private Sub btnAdd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnAdd.Click

    Dim cmd As New OleDb.OleDbCommand
    If Not CN.State = ConnectionState.Open Then

        CN.Open()
    End If

    cmd.Connection = CN

    If Me.txtID.Tag & "" = "" Then

        cmd.CommandText = "INSERT INTO DailyWorkLoadRegister(ID,Age,FullName,Sex,Ward) " & _
                        "VALUES(" & Me.txtID.Text & ",'" & Me.txtAge.Text & "','" & _
                        Me.txtFullName.Text & "','" & Me.txtSex.Text & "','" & Me.txtWard.Text & "')"
        cmd.ExecuteNonQuery()
    Else

        cmd.CommandText = "Update DailyWorkLoadRegister" & _
                    "SET ID=" & Me.txtID.Text & _
                    ", FullName='" & Me.txtFullName.Text & "'" & _
                     ", Sex='" & Me.txtSex.Text & "'" & _
                      ", Age='" & Me.txtAge.Text & "'" & _
                       ", Ward='" & Me.txtWard.Text & "'" & _
                       "WHERE ID=" & Me.txtID.Tag
        cmd.ExecuteNonQuery()

    End If

    RefreshData()

    Me.btnClear.PerformClick()

    CN.Close()

End Sub

Private Sub btnedit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnedit.Click

    If Me.dgvData.Rows.Count > 0 Then
        If Me.dgvData.SelectedRows.Count > 0 Then
            Dim intID As Integer = Me.dgvData.SelectedRows(0).Cells("id").Value

            If Not CN.State = ConnectionState.Open Then
                CN.Open()
            End If

            Dim da As New OleDb.OleDbDataAdapter("SELECT * FROM DailyWorkLoadRegister " & _
                                                 "where ID=" & intID, CN)
            Dim dt As New DataTable
            da.Fill(dt)

            Me.txtID.Text = intID
            Me.txtFullName.Text = dt.Rows(0).Item("FullName")
            Me.txtSex.Text = dt.Rows(0).Item("Sex")
            Me.txtAge.Text = dt.Rows(0).Item("Age")
            Me.txtWard.Text = dt.Rows(0).Item("Ward")
            Me.txtID.Tag = intID

            Me.btnAdd.Text = "Update"

            Me.btnedit.Enabled = False
            CN.Close()
        End If
    End If
End Sub

Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click

    If Me.dgvData.Rows.Count > 0 Then
        If Me.dgvData.SelectedRows.Count > 0 Then
            Dim intID As Integer = Me.dgvData.SelectedRows(0).Cells("id").Value
            If Not CN.State = ConnectionState.Open Then
                CN.Open()
            End If

            Dim cmd As New OleDb.OleDbCommand
            cmd.Connection = CN
            cmd.CommandText = " DELETE FROM DailyWorkLoadRegister WHERE ID=" & intID
            cmd.ExecuteNonQuery()

            Me.RefreshData()


            CN.Close()

        End If
    End If
End Sub
End Class

0 个答案:

没有答案