好日子,
感谢您的帮助,我的VB.net技能正在提高。我有另一个小请求 - 需要帮助解决一些我在调试过程中遇到问题的代码。
我的目的是让代码 - 在button.click事件上 - 检查用户名和密码字段并根据哪个错误返回错误。或者如果两者都错误,则返回不同的错误消息。我已将用户名设置为部分,将密码设置为部分(仍在学习如何使用外部身份验证)。
所以,这是代码 - 我怎样才能使这个工作?
If Not TextBoxUsername.Text = "parts" Then
Label3.ForeColor = Color.Red
Label3.Text = "Invalid Username..."
TextBoxUsername.SelectAll()
TextBoxUsername.Focus()
Else
If Not TextBoxPassword.Text = "parts" Then
Label3.ForeColor = Color.Red
Label3.Text = "Invalid Password..."
TextBoxPassword.SelectAll()
TextBoxPassword.Focus()
'NOTES:
'This section of the code is being skipped, and I can't figure out why.
ElseIf TextBoxUsername.Text <= "parts" And TextBoxPassword.Text <= "parts" Then
Label3.ForeColor = Color.Red
Label3.Text = "Invalid USERNAME and PASSWORD..."
TextBoxUsername.SelectAll()
TextBoxUsername.Focus()
Else
Label3.ForeColor = Color.Green
Label3.Text = "Login successful..."
FormMain.Show()
Me.Close()
End If
End If
我正在阅读使用SELECT CASE语句来查看我是否可以使用它 - 但还没有弄清楚如何使其工作。感谢。
// Kismet中
答案 0 :(得分:1)
SELECT CASE
在这里并不是真正合适的解决方案。试试这个:
If TextBoxUsername.Text <> "parts" And TextBoxPassword.Text <> "parts" Then
Label3.ForeColor = Color.Red
Label3.Text = "Invalid USERNAME and PASSWORD..."
TextBoxUsername.SelectAll()
TextBoxUsername.Focus()
Else If TextBoxUsername.Text <> "parts" Then
Label3.ForeColor = Color.Red
Label3.Text = "Invalid Username..."
TextBoxUsername.SelectAll()
TextBoxUsername.Focus()
Else If TextBoxPassword.Text <> "parts" Then
Label3.ForeColor = Color.Red
Label3.Text = "Invalid Password..."
TextBoxPassword.SelectAll()
TextBoxPassword.Focus()
Else
Label3.ForeColor = Color.Green
Label3.Text = "Login successful..."
FormMain.Show()
Me.Close()
End If
一些风格笔记:
Label3需要一个合适的名字。如果您要在代码中引用它,请不要使用默认值。它现在很好,但是当你的表格变得更复杂时,你将很难记住label1,label6和label23之间的区别。不要试图把这一切都记在脑后。而是使用控件的描述性名称。
请注意使用<>
,表示“不等于”。这有时比Not
运算符略好一些,因为您可以从左到右阅读,而不必双回并记住该子句之前有Not
。这实际上是个人偏好而不是技术正确性。
答案 1 :(得分:1)
我绝对同意布莱恩在这里:)
然而,一个小点。从“安全”角度来看,永远不要让用户知道用户名是否不正确或密码是否错误。这是我的建议
If TextBoxUsername.Text <> "parts" or TextBoxPassword.Text <> "parts" Then
Label3.ForeColor = Color.Red
Label3.Text = "Invalid USERNAME OR Invalid PASSWORD. Please Try Again"
Else
Label3.ForeColor = Color.Green
Label3.Text = "Login successful..."
FormMain.Show()
Me.Close()
End If