vb.net - 根据 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
当我运行表单时,我会收到此输出
解决方案
您必须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
推荐阅读
- python - 将某些索引名称(字符串)复制到新的数据框
- java - Criteria Api 中的左外连接
- angular - 输入 '(token: string) => Observable<{ headers: HttpHe aders; }>' 不可分配给类型 'Observable
' - ubuntu-16.04 - 当我连接时,鳄梨酱关闭套接字到 guacd
- ios - 使用 Button 将文本添加到 UITableViewcell 中包含的文本字段值
- javascript - JS/JQUERY如何在同一个DIV中优先点击按钮
- spring - Thymeleaf 表达式对象:#session 和 ${session....}
- elasticsearch - 如何在 Spring Data ES 3.2.0.M1 中使用 High Level Rest Client
- reactjs - 通过重新选择将选择器结果传递给另一个选择器
- ios - 使用带有情节提要参考的“Unwind Segue”时“没有标识符的segue”