2015-01-17 62 views
0

我想從SQL Server檢索數據到VB.NET文本框,但我不知道還有什麼要做的所有教程我只是從數據庫中檢索記錄到數據網格view..please幫助..顯示數據從SQL到VB.NET文本框

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

你想在同一時間('txtrfid_KeyPress')顯示只有一個名字? –

+0

@ WingedPanther - 它的工作,但當我嘗試其他身份證號碼,它只顯示第一個數據。它應該顯示與我搜索的相同的id –

+0

表中的_data type_字段「RFID」是什麼?你不應該使用像'%'&txtrfid.Text&'%'這樣的'RFID',它更好地使用'RFID ='&txtrfid.Text&'' –

回答

0

你填充與數據庫中的數據的DataTable所以你就必須從DataTable數據進入TextBox。您可以使用數據綁定來實現這一點,這就是您可能已經用網格完成的方式,例如,

txtname.DataBindings.Add("Text", dt, "Firstname") 

這絕對是你會怎麼做,如果你被檢索,你希望能夠瀏覽多條記錄,儘管你可能在兩者之間使用BindingSource。如果只有一條記錄,那麼你可以手動移動數據,例如,

txtname.Text = CStr(dt.Rows(0)("Firstname")) 
+0

tnx!現在我有很多選擇使用什麼... –

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 

你可能趕上與嘗試捕獲技術除外。

+0

tnx它的工作! tnx的幫助。我很感激。 –

+0

@AlistaireTurno你有幾個很好的答案。如果問題得到解決,您應該點擊最佳答案旁邊的複選標記,以便將其從未答覆列表中移除。 – Plutonix

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 
+0

tnx!,現在它已修復,我也無法顯示其他信息之前,因爲該文本框沒有清除ID號的下一個輸入我只是把Textbox1.Clear()和它的tnx工作。 –

+0

對不起,我沒有注意到複選標記,因爲我的網絡連接速度很慢。但無論如何你需要幫助。 –