首页 > 解决方案 > 根据 DB 结果 VB.net 更改文本框中的数据

问题描述

我在 VB.net 中设计了一个基于 ODBC 连接的表单。

我的用户需要在 textbox1 中插入产品编号,用户按下键后,从数据库中提取的描述会自动显示在 textbox2 中ENTER

在网上搜索后,我写了一些不起作用的东西。

Private Sub Product_TextChanged(sender As Object, e As EventArgs) Handles Product.TextChanged
    Dim P, SQL As String
    Dim cn As OdbcConnection
    Dim cmd As OdbcCommand

    P = Product.Text

    If P = "" Then
        Exit Sub
    Else
        cn = New OdbcConnection("Driver={Microsoft ODBC for Oracle}; Server=*****; uid=*****;pwd=*****")
        SQL = "select part_long_name from dbtrans.parts where part_code='" & P & "'"
        cn.Open()
        cmd = New OdbcCommand(SQL)
        Description.Text = cmd.ToString
    End If
End Sub

当我运行表单时,我会收到此输出

在此处输入图像描述

标签: vb.net

解决方案


您必须Using用于数据库对象。
您必须使用参数而不是字符串连接
您必须将您的命令链接到您创建的连接对象。
最后,您必须实际执行您的命令,而不仅仅是创建它。

Using cn = New OdbcConnection("Driver={Microsoft ODBC for Oracle}; Server=*****; uid=*****;pwd=*****")
    cn.Open()
    Using cmd = New OdbcCommand("select part_long_name from dbtrans.parts where part_code=?", cn)
        cmd.Parameters.Add(Nothing, OdbcType.VarChar, 255).Value = P

        Description.Text = CType(cmd.ExecuteScalar(), String)
    End Using
End Using

推荐阅读