SQL 单击按钮后查询将数据放入 textbox.text
SQL query get data into textbox.text after clicking a button
所以我有一个
textbox1.Text
和一个按钮
如何将 sql ID 数据获取到 textbox1.text
我正在尝试从 sql 获取字符串值。
在 MSSQL 查询中,此查询运行良好
select thisID FROM thisTable where ThisName = 'Name'
但在 vbNet 中,单个 qoutes 被视为注释
textbox1.text = "SELECT thisID from thisTable where ThisName=
'" & 'Name' & "'"
我只想让 sql 中的 itemID 出现在文本框中。
帮助。谢谢。
i just want the itemID from sql to appear in the textbox. help. thank you.
对.. 嗯.. 不是那样的!如果您将文本框中的文本设置为 "c:\temp\my.txt"
,您希望您的程序将文件加载到文本框中吗?
或者您认为文本框只会显示 C:\temp\my.txt ?
您必须连接到数据库,下载数据并将数据放入文本框
让我们开始吧,让您的生活更轻松一些:
- 使用 nuget 包管理器(google 了解如何在您的 VS 版本中打开它)安装
Dapper
- 输入这样的代码:
Dim c as New SqlConnection("your db connection string here")
textbox1.text = c.ExecuteScalar(Of String)( _
"SELECT thisID from thisTable where ThisName=@pName", _
New With { .pName = "some name here" } _
)
我猜是 SqlConnection,但如果你的数据库不是 SQLServer,请使用适当的连接类型
首先,您确定 ThisName
是唯一值吗?该字段是否具有 UNIQUE 约束?否则,您可能无法从此查询中获得预期的结果。
最好将用户界面代码与数据库代码分开。
我正在使用 ADO.net 和 MS Sql 服务器提供商。
Imports System.Data.SqlClient
要完成您想要的,您将需要连接到数据库和一个命令来告诉数据库要做什么。将连接字符串传递给连接的构造函数,并将 CommandText
和 Connecion
属性传递给命令的构造函数。
需要释放数据库对象,例如连接和命令。我们有 Using...End Using
块来完成这个。
打开连接并使用 ExecuteScalar
检索数据。 ExecuteScalar
return 一个 Object
这是结果集第一行的第一列。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
TextBox1.Text = GetIDByName(txtName.Text)
End Sub
Private Function GetIDByName(name As String) As String
Dim ID As String = ""
Using cn As New SqlConnection("Your connection string"),
cmd As New SqlCommand("select thisID FROM thisTable where ThisName = @Name", cn)
cmd.Parameters.Add("@Name", SqlDbType.VarChar).Value = name
cn.Open()
ID = cmd.ExecuteScalar().ToString
End Using
Return ID
End Function
编辑
由于我们现在请求的字段不止一个,所以将函数的return类型改为DataTable
。 DataTable
是请求的行和列的内存表示。
传递给命令构造函数的 CommandText
现在包括两个字段。
我应该在我的第一个代码示例中向您展示如何使用参数。这非常重要,因为它将帮助您避免 sql 注入 - 对您的数据库的巨大危险。注意:我已经更正了第一个代码片段。 @Name
是参数的名称,它被添加到参数集合中。 SQL 服务器将用参数值替换 CommandText
中的 @Name
。
我正在使用 DataReader
检索数据并将其加载到 DataTable
。 SqlCommand.ExecuteReader
return一个DataReader
.
在按钮代码中,我引用了索引为 0
的第一行和我们请求的索引为 0
的第一个字段以填充第一个文本框。第二个文本框的字段索引更改为 1
,因为它是第二个字段。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim dt = GetDataByName(txtName.Text)
TextBox1.Text = dt.Rows(0)(0).ToString
TextBox2.Text = dt.Rows(0)(1).ToString
End Sub
Private Function GetDataByName(name As String) As DataTable
Dim dt As New DataTable
Using cn As New SqlConnection("Your connection string"),
cmd As New SqlCommand("select thisID, ItemName FROM thisTable where ThisName = @Name", cn)
cmd.Parameters.Add("@Name", SqlDbType.VarChar).Value = name
cn.Open()
Using reader = cmd.ExecuteReader
dt.Load(reader)
End Using
End Using
Return dt
End Function
所以我有一个 textbox1.Text
和一个按钮
如何将 sql ID 数据获取到 textbox1.text 我正在尝试从 sql 获取字符串值。 在 MSSQL 查询中,此查询运行良好
select thisID FROM thisTable where ThisName = 'Name'
但在 vbNet 中,单个 qoutes 被视为注释
textbox1.text = "SELECT thisID from thisTable where ThisName= '" & 'Name' & "'"
我只想让 sql 中的 itemID 出现在文本框中。 帮助。谢谢。
i just want the itemID from sql to appear in the textbox. help. thank you.
对.. 嗯.. 不是那样的!如果您将文本框中的文本设置为 "c:\temp\my.txt"
,您希望您的程序将文件加载到文本框中吗?
或者您认为文本框只会显示 C:\temp\my.txt ?
您必须连接到数据库,下载数据并将数据放入文本框
让我们开始吧,让您的生活更轻松一些:
- 使用 nuget 包管理器(google 了解如何在您的 VS 版本中打开它)安装
Dapper
- 输入这样的代码:
Dim c as New SqlConnection("your db connection string here")
textbox1.text = c.ExecuteScalar(Of String)( _
"SELECT thisID from thisTable where ThisName=@pName", _
New With { .pName = "some name here" } _
)
我猜是 SqlConnection,但如果你的数据库不是 SQLServer,请使用适当的连接类型
首先,您确定 ThisName
是唯一值吗?该字段是否具有 UNIQUE 约束?否则,您可能无法从此查询中获得预期的结果。
最好将用户界面代码与数据库代码分开。
我正在使用 ADO.net 和 MS Sql 服务器提供商。
Imports System.Data.SqlClient
要完成您想要的,您将需要连接到数据库和一个命令来告诉数据库要做什么。将连接字符串传递给连接的构造函数,并将 CommandText
和 Connecion
属性传递给命令的构造函数。
需要释放数据库对象,例如连接和命令。我们有 Using...End Using
块来完成这个。
打开连接并使用 ExecuteScalar
检索数据。 ExecuteScalar
return 一个 Object
这是结果集第一行的第一列。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
TextBox1.Text = GetIDByName(txtName.Text)
End Sub
Private Function GetIDByName(name As String) As String
Dim ID As String = ""
Using cn As New SqlConnection("Your connection string"),
cmd As New SqlCommand("select thisID FROM thisTable where ThisName = @Name", cn)
cmd.Parameters.Add("@Name", SqlDbType.VarChar).Value = name
cn.Open()
ID = cmd.ExecuteScalar().ToString
End Using
Return ID
End Function
编辑
由于我们现在请求的字段不止一个,所以将函数的return类型改为DataTable
。 DataTable
是请求的行和列的内存表示。
传递给命令构造函数的 CommandText
现在包括两个字段。
我应该在我的第一个代码示例中向您展示如何使用参数。这非常重要,因为它将帮助您避免 sql 注入 - 对您的数据库的巨大危险。注意:我已经更正了第一个代码片段。 @Name
是参数的名称,它被添加到参数集合中。 SQL 服务器将用参数值替换 CommandText
中的 @Name
。
我正在使用 DataReader
检索数据并将其加载到 DataTable
。 SqlCommand.ExecuteReader
return一个DataReader
.
在按钮代码中,我引用了索引为 0
的第一行和我们请求的索引为 0
的第一个字段以填充第一个文本框。第二个文本框的字段索引更改为 1
,因为它是第二个字段。
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim dt = GetDataByName(txtName.Text)
TextBox1.Text = dt.Rows(0)(0).ToString
TextBox2.Text = dt.Rows(0)(1).ToString
End Sub
Private Function GetDataByName(name As String) As DataTable
Dim dt As New DataTable
Using cn As New SqlConnection("Your connection string"),
cmd As New SqlCommand("select thisID, ItemName FROM thisTable where ThisName = @Name", cn)
cmd.Parameters.Add("@Name", SqlDbType.VarChar).Value = name
cn.Open()
Using reader = cmd.ExecuteReader
dt.Load(reader)
End Using
End Using
Return dt
End Function