为什么textbox没有加载任何数据?

时间:2014-02-14 00:13:28

标签: vb.net

我想在txtlname.textbox中加载一些数据,这取决于我的textbox1.text,或者如果我按下txtlname的按钮将加载,具体取决于我在textbox1中输入的内容。

Private Sub Button2_Click(ByVal sender As System.Object, 
            ByVal e As System.EventArgs) Handles Button2.Click

    disconnect()
    connect()
    Try
        da = New Odbc.OdbcDataAdapter("Select distinct lname FROM tblemployee WHERE emp_id ='" & Trim(TextBox1.Text.TrimEnd()) & "'", con)
        dr = cmd.ExecuteReader

        If dr.Read Then

            txtlname.Text = dr("lname").ToString
            txtlname.Refresh()

        End If

    Catch ex As Exception
        Debug.WriteLine("Plz log in again" & ex.Message)

    End Try

End Sub
End Class

1 个答案:

答案 0 :(得分:1)

首先,我会更改您的查询以使用参数化命令

    da = New Odbc.OdbcDataAdapter("Select distinct lname FROM tblemployee WHERE emp_id =?", con)
    da.SelectCommand.Parameters.AddWithValue("@p1", TextBox1.Text.Trim())
    dr = cmd.ExecuteReader
    If dr.Read Then

        txtlname.Text = dr("lname").ToString
        txtlname.Refresh()
    Else
        MessageBox.Show("No record found!")
    End If

然后,我添加了一条消息,以防dr.Read返回false。 (没有与where条件匹配的记录) 至少你会知道文本框是否仍然空白的原因很简单。

最后一点。如果emp_id是表tblEmployee中的数字字段,则传递给SelectCommand参数集合的值应该转换为整数,因为它是作为字符串传递的,这可能是是失踪结果的来源。