我试图将数据从sql server检索到vb.net文本框但是我不知道还有什么可以做我所拥有的只是从数据库中检索记录到datagrid视图。请帮忙..
Private Sub txtrfid_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtrfid.KeyPress
cn.Open()
With cmd
.Connection = cn
.CommandText = "SELECT * FROM Students WHERE RFID like '%" & txtrfid.Text & "%'"
End With
MsgBox("Record Found!", MsgBoxStyle.Information, "Update")
da.SelectCommand = cmd
dt.Clear()
da.Fill(dt)
cn.Close()
txtname.Text = 'Firstname'
答案 0 :(得分:1)
如果您只想从表中显示单个值(FirstName
),请参阅以下代码
Using conn As New SqlConnection("connstr")
conn.Open()
Dim cmd As New SqlCommand("", conn)
Dim txtName As String
cmd.CommandText = "SELECT firstname FROM Students WHERE RFID ='" & txtrfid.Text & "'"
txtName = IIf(IsDBNull(cmd.ExecuteScalar), "", cmd.ExecuteScalar)
If txtName <> "" Then
MsgBox("Record Found!", MsgBoxStyle.Information, "Update")
Textbox1.Text = ""
Textbox1.Text = txtName
else
MsgBox("No Record Found!", MsgBoxStyle.Information, "INFO.")
End If
End Using
答案 1 :(得分:0)
您使用数据库中的数据填充DataTable
,然后您必须将DataTable
中的数据导入TextBox
。你可以用数据绑定来做到这一点,这就是你可能已经看到它用网格完成的,例如。
txtname.DataBindings.Add("Text", dt, "Firstname")
如果你要检索想要能够导航的多条记录,那么你肯定是这样做的,尽管你可能在它们之间使用BindingSource
。如果只有一条记录,那么您可以手动移动数据,例如
txtname.Text = CStr(dt.Rows(0)("Firstname"))
答案 2 :(得分:0)
有很多方法可以检索数据。您可以使用sql数据读取器将数据从sql数据库检索到文本框,这是我最喜欢的一个。让我与大家分享一下。 注意:不要忘记导入system.data.sqlclient
Private Sub txtrfid_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtrfid.KeyPress
strConn = "Data Source=" & servernamehere & ";Initial Catalog=" & databasenamehere & ";User ID=" & userid & ";Password=" & password
sqlConn = New SqlConnection(strConn)
sqlConn.Open()
Dim sqlcmd As New SqlCommand("Your query here", sqlConn)
Dim myreader As SqlDataReader
myreader = sqlcmd.ExecuteReader()
myreader.Read()
If myreader.HasRows Then
txtrfid.Text = myreader.Item("column name from sql database table").Tostring
End If
sqlConn.Close()
End Sub
您可以使用Try-Catch Technique捕获异常。