Dim con As New SqlConnection
con.ConnectionString = "Data Source=(local);Integrated Security=True"
Dim cmd As New SqlCommand("SELECT * FROM login where Admin = @Admin AND Password = @Password ", con)
'Set up parameters for the sqlcommand
cmd.Parameters.AddWithValue("@Admin", comb.Text)
cmd.Parameters.AddWithValue("@Password", Txtpass.Text)
'If the username or password is empty then throw an error
If comb.Text = String.Empty Then
MessageBox.Show("Please choose the username.", Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
ElseIf Txtpass.Text = String.Empty Then
MessageBox.Show("Please enter the password.", Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
Else
Try
'Open the connection and declare an sqlreader
con.Open()
Dim reader As SqlDataReader = cmd.ExecuteReader
'If our reader has one or more rows then read those rows and compare the text
If reader.HasRows = True Then
reader.Read()
Dim ReadUserName As String
Dim ReadUserID As String
ReadUserID = reader(3) 'This is the first field returned, most likely UserID
ReadUserName = reader(1) 'This is the second field returned
'If the username and password match then it's a success
If comb.Text = reader("Admin").ToString And Txtpass.Text = reader.Item("Password").ToString Then
MessageBox.Show("Login successful" & ReadUserName)
Else
'If they don't match than throw an error
MessageBox.Show("Login Failed." & Environment.NewLine & _
"UserName and Password are casesensitive.", _
Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
End If
Catch ex As Exception
MessageBox.Show(ex.ToString, Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
Finally
con.Close()
End Try
End If
0
A
回答
1
你告訴你的代碼讀取一行:
If reader.HasRows = True Then
reader.Read()
如果你想從你的SqlDataReader
閱讀所有行,則需要在C#(這裏使用一個循環):
while (reader.Read())
{
..... (read the individual values for the current row) ......
}
的.Read()
調用將返回true
,一隻要已經從SqlDataReader
中讀取了一行 - 現在從行中獲取數據,存儲或處理數據 - 無論您需要做什麼 - 然後再次調用reader.Read()
以檢查是否可以讀取另一行。如果是這樣:重複處理。
如果reader.Read()
返回false,那麼所有的行都被讀取完成。
1
如果命令只運行一次代碼並讀取一行。所以使用while循環來讀取所有行
If reader.HasRows = True Then
While reader.Read()
Dim ReadUserName As String
Dim ReadUserID As String
ReadUserID = reader(3) 'This is the first field returned, most likely UserID
ReadUserName = reader(1) 'This is the second field returned
'If the username and password match then it's a success
If comb.Text = reader("Admin").ToString And Txtpass.Text = reader.Item("Password").ToString Then
MessageBox.Show("Login successful" & ReadUserName)
Else
'If they don't match than throw an error
MessageBox.Show("Login Failed." & Environment.NewLine & _
"UserName and Password are casesensitive.", _
Me.Text, MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
End While ' I don't know much of vb.net'
End If
+0
@Steve固定,對不起 –
相關問題
- 1. 爲什麼我的C#代碼只顯示數據庫中的第一行?
- 2. 我的代碼只能讀取我的csv文件中的第一行記錄
- 3. 爲什麼我的代碼只返回數據庫中的一行?
- 4. 爲什麼我的代碼從數據庫中刪除第一行
- 5. 爲什麼我的SQLDataReader只是讀取數據庫表的最後一行?
- 6. 爲什麼數據庫第一類不同於我的代碼第一類
- 7. Java:爲什麼我的BufferedReader不能讀取我的代碼的下一行?
- 8. 爲什麼我的Java程序只能讀取一行輸入?
- 9. 爲什麼我不能讀取我的數據庫?
- 10. 爲什麼我的腳本只能獲取我的php表的第一行?下面是我的代碼
- 11. 爲什麼此代碼只讀取第一行而不是整個.txt文件?
- 12. 爲什麼我的緩衝讀取器只能讀取每隔一行?
- 13. 爲什麼我只能從文件讀取一行?
- 14. 我的Java代碼不能運行,爲什麼? (只有幾行)
- 15. 爲什麼我的代碼不能更新數據庫?
- 16. PHP:爲什麼我的代碼不能插入數據庫
- 17. 爲什麼memcache-> get()只能從數據庫中檢索第一行?
- 18. 爲什麼我的SQL數據庫標記爲只讀?
- 19. 爲什麼textscan只能讀一行
- 20. 爲什麼append只能運行我的代碼的最後一次迭代?
- 21. 爲什麼只有我的代碼的一部分功能?
- 22. 爲什麼python只能讀取csv的最後一行?
- 23. 我的代碼有什麼問題?爲什麼我不能爲從數據庫檢索的數據分配「0」
- 24. 爲什麼我不能讀取結果集中的下一行
- 25. 爲什麼我的代碼只能正常工作一次?
- 26. 爲什麼我只能獲得一半的html源代碼?
- 27. VB.NET - 爲什麼我的Excel讀取跳過第一行?
- 28. 爲什麼我只能刪除我的數據表中的一些行? (jquery)
- 29. PHP PDO爲什麼只選擇數據庫表中的第一行?
- 30. 只能讀取一次串行數據
不確定要理解表的邏輯。什麼是管理員字段?您是否期望具有特定密碼的用戶不止一次出現? – Steve