visual basic:查找匹配的字符串

时间:2013-04-02 09:38:42

标签: database visual-studio-2010

我正在使用VB 2010 Express访问.mdb格式的数据库。 我想找到包含特定字符串和数字的行,所以我在while循环中写了这个。我正在使用If语句来确保循环不超过最大行数(MaxRows)并抛出错误。它一直给出的结果是:“没有找到记录”,即使数据库中确实存在字符串。我做错了什么?

注意:inc用于增加行。消息框仅用于查看变量值

代码:

    Dim lpn As String
    Dim lpn2 As String


    inc = 0

    lpn = TextBox5.Text

    lpn2 = ds.Tables("RegisteredCarsDataSet").Rows(inc).Item(7)

    MsgBox(lpn & " " & lpn2 & " ") 

    While lpn <> lpn2

        If inc <> MaxRows - 1 Then
            inc = inc + 1
            lpn2 = ds.Tables("RegisteredCarsDataSet").Rows(inc).Item(7)

            MsgBox(lpn & " " & lpn2)
        Else
            MsgBox("No record found.")
            Exit While
        End If
    End While

    TextBox1.Text = ds.Tables("RegisteredCarsDataSet").Rows(inc).Item(1)
    TextBox2.Text = ds.Tables("RegisteredCarsDataSet").Rows(inc).Item(2)
    TextBox3.Text = ds.Tables("RegisteredCarsDataSet").Rows(inc).Item(3)
    TextBox4.Text = ds.Tables("RegisteredCarsDataSet").Rows(inc).Item(4)
    ComboBox1.Text = ds.Tables("RegisteredCarsDataSet").Rows(inc).Item(5)
    ComboBox2.Text = ds.Tables("RegisteredCarsDataSet").Rows(inc).Item(6)
    TextBox5.Text = ds.Tables("RegisteredCarsDataSet").Rows(inc).Item(7)

1 个答案:

答案 0 :(得分:0)

对消息框中变量值的仔细检查表明,由于某种原因,字符串会添加尾随空格。 .trim()处理了这个问题。 正如Arvo(谢谢Arvo)所做的那样,经过一些研究,我使用了“从我的表中选择* myfield like'mystring'”命令,并将结果保存在一个新的数据集中。即使在这段代码中我也必须使用.Trim()函数。知道为什么要添加尾随空格(注意TextBox 5是从另一个变量填充的,而不是手动填充的)?

    con.Open()
    dss.Clear()
    Dim idn As String = TextBox5.Text
    Dim MaxRows2 As Integer
    idn = idn.Trim()

    sql = "SELECT * FROM Details WHERE TagID Like '" & idn & "'"
    MsgBox(sql)
    das = New OleDb.OleDbDataAdapter(sql, con)    ' assign table to data adapter
    das.Fill(dss, "SearchResults")

    MaxRows2 = dss.Tables("SearchResults").Rows.Count
    MsgBox(MaxRows2)
    con.Close()

    If MaxRows2 <> 0 Then
        TextBox1.Text = dss.Tables("SearchResults").Rows(0).Item(1)
        TextBox2.Text = dss.Tables("SearchResults").Rows(0).Item(2)
        TextBox3.Text = dss.Tables("SearchResults").Rows(0).Item(3)
        TextBox4.Text = dss.Tables("SearchResults").Rows(0).Item(4)
        ComboBox1.Text = dss.Tables("SearchResults").Rows(0).Item(5)
        ComboBox2.Text = dss.Tables("SearchResults").Rows(0).Item(6)
        TextBox5.Text = dss.Tables("SearchResults").Rows(0).Item(7)

    ElseIf MaxRows2 = 0 Then
        MsgBox("No entry found")
    End If
相关问题