检查DBF数据库中是否存在值

时间:2014-04-08 13:17:11

标签: vb.net exists dbf

我正在尝试检查价值" IAV-1419"存在于名为ColName的数据库的第二列(PROMGL.DBF)中。

我收到此错误:没有值给出一个或多个必需参数

        Dim con As New OleDbConnection
    Dim cmd As New OleDbCommand

    Dim FilePath As String = "C:\"
    Dim DBF_File As String = "PROMGL"
    Dim ColName As String = "[NALOG,C,8]"
    con.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FilePath & _
    " ;Extended Properties=dBASE IV"
    cmd = New OleDbCommand("SELECT * FROM PROMGL WHERE [NALOG,C,8] = @NAL")


    cmd.Connection = con
    con.Open()
    cmd.Parameters.AddWithValue("@NAL", "IAV-1419")
    Using reader As OleDbDataReader = cmd.ExecuteReader()
        If reader.HasRows Then
            con.Close()
            Label6.Text = "EXIST"
            TextBox1.Text = ""
            TextBox1.Focus()

        Else
            Label6.Text = "DOESN'T EXIST"

        End If
    End Using

我被困在这里,如果有人可以请我帮我查一下这段代码。

1 个答案:

答案 0 :(得分:2)

你确定你的连接字符串是正确的????

Data Source=" & FilePath & 

连接字符串如何知道数据库只指向" C:\"我认为缺少数据库名称

另一个个人建议使您的代码在示例中更易于阅读:

    Dim FilePath As String = "C:\"
    Dim DBF_File As String = "PROMGL"
    Dim ColName As String = "[NALOG,C,8]"
    Using con As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & FilePath & _
    " ;Extended Properties=dBASE IV")
        con.Open()
    Using  cmd As New OleDbCommand("SELECT * FROM PROMGL WHERE [NALOG,C,8] = @NAL", con
            cmd.Parameters.AddWithValue("@NAL", "IAV-1419")
            Using reader As OleDbDataReader = cmd.ExecuteReader()
                If reader.HasRows Then
                    Label6.Text = "EXIST"
                    TextBox1.Text = ""
                    TextBox1.Focus()
                Else
                    Label6.Text = "DOESN'T EXIST"
                End If
            End Using
        End Using
    End Using