[英]Search for a value from column one, and return value from column two on the same row in VB.NET
因此,如果用戶輸入了他們的電子郵件,以防萬一忘記了密碼,那么該輸入將進入查詢中,在該查詢中,選擇“電子郵件”等於用戶輸入的電子郵件的位置,但是我還如何獲得密碼?第二列返回給用戶?
我正在使用的代碼是這樣的:
Try
If Not dbconn Is Nothing Then dbconn.Close()
dbconn.ConnectionString = String.Format("server={0}; port=3306; user id={1}; password={2}; database={3}; pooling=true", server, userName, password, DatabaseName)
dbconn.Open()
query = String.Format("SELECT * FROM Testers WHERE Email='" + forgotEmail + "'")
Try
dbcomm = New MySqlCommand(query, dbconn)
dbread = dbcomm.ExecuteReader()
While dbread.Read()
End While
dbread.Close()
Catch ex As Exception
MsgBox(ex.ToString)
End Try
Catch ex As Exception
MsgBox(ex.ToString)
End Try
但是查詢點之后我該怎么辦?
更新 :由於提供的示例是關於密碼的,並且在密碼安全性方面應格外小心,因此我將以一些要考慮的要點開始對此(已接受)答案,其他用戶也評論過:
切勿使用或發送明文密碼。
請改用散列,並在需要時向用戶發送一個臨時散列。
使用參數化查詢來防止SQL注入。
必須讀取:
現在進行任務 :
在VB.NET的同一行中從第一列中搜索值,並從第二列中返回值
嘗試這個:
String fieldval;
While dbread.Read()
fieldval = reader.GetString(reader.GetOrdinal("column2"))
'Do something with fieldval
End While
當然,在這種情況下,while循環僅應執行一次(即,只有一條包含該電子郵件地址的記錄)。
您還可以減少此:
query = String.Format("SELECT * FROM Testers WHERE Email='" + forgotEmail + "'")
至
query = String.Format("SELECT column2 FROM Testers WHERE Email='" + forgotEmail +"'")
其中column2
是該字段的名稱。
當然,使用密碼時,應始終格外小心。 還可以查看Plutonix的評論!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.