Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在VB.NET中搜索、添加、编辑、删除数据_Vb.net - Fatal编程技术网

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

在VB.NET中搜索、添加、编辑、删除数据,vb.net,Vb.net,我正在使用vb.net应用程序和OleDb数据库。 在表单中,我有搜索、添加、编辑和删除按钮。 虽然搜索数据正在工作,但添加、编辑、删除不工作。 这是我的密码 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)

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

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

如果您在查询中使用参数来避免SQL注入,您将是一个更好的程序员。您是否有任何错误?您是否验证了SQL在VB.NET代码之外工作?只是试图排除错误出现在SQL中而不是.NET代码中的可能性。如果Me.txtID.Tag&=则看起来可疑。。。。什么是.Tag?为什么添加?但我使用数据库访问db文件