C# 仅当用户名与数据库相同时,才会执行与数据库的连接
我在登录用户时遇到问题。每当我运行程序时,程序都不会执行C# 仅当用户名与数据库相同时,才会执行与数据库的连接,c#,database,winforms,C#,Database,Winforms,我在登录用户时遇到问题。每当我运行程序时,程序都不会执行Wait表单,除非用户名与数据库相同 我想知道,无论何时用户在数据库中输入不同的用户名,都会执行等待表单,而不仅仅是当用户名与数据库相同时 代码如下: private void CheckUserDatabase(object sender, EventArgs e) { using (OleDbConnection conn = new OleDbConnection(connectionString)) {
Wait
表单,除非用户名
与数据库相同
我想知道,无论何时用户在数据库中输入不同的用户名
,都会执行等待
表单,而不仅仅是当用户名
与数据库相同时
代码如下:
private void CheckUserDatabase(object sender, EventArgs e)
{
using (OleDbConnection conn = new OleDbConnection(connectionString))
{
string query = "SELECT * FROM [Member] WHERE [Username] = @Username";
conn.Open();
using (OleDbCommand cmd = new OleDbCommand(query, conn))
{
cmd.Parameters.Add("@Username", System.Data.OleDb.OleDbType.VarChar);
cmd.Parameters["@Username"].Value = this.textBox1.Text;
using (OleDbDataReader dReader = cmd.ExecuteReader())
{
if (dReader.Read())
{
_wait.ShowDialog();
UserInformation.CurrentLoggedInUserLanguage = comboBox1.Text;
UserInformation.Password = (string)dReader["Password"];
isValidPassword = BCrypt.CheckPassword(this.textBox2.Text, UserInformation.Password);
if (isValidPassword)
{
System.Media.SoundPlayer sound = new System.Media.SoundPlayer(@"C:\Windows\Media\Windows Exclamation.wav");
sound.Play();
DialogResult _dialogResult = MessageBox.Show("Verified", "Congratulations", MessageBoxButtons.OK);
if (_dialogResult == DialogResult.OK)
{
UserInformation.CurrentLoggedInName = (string)dReader["ChosenName"];
UserInformation.CurrentLoggedInUser = (string)dReader["Username"];
UserInformation.CurrentLoggedInUserType = (string)dReader["UserType"];
UserInformation.CurrentLoggedInUserStore = (string)dReader["UserStore"];
this.Hide();
Choices _choices = new Choices();
_choices.ShowDialog();
this.Close();
}
}
else if (!isValidPassword)
{
System.Media.SoundPlayer sound = new System.Media.SoundPlayer(@"C:\Windows\Media\Windows Notify.wav");
sound.Play();
DialogResult _dialogResult = MessageBox.Show("Not Verified", "Warning", MessageBoxButtons.OK);
if (_dialogResult == DialogResult.OK)
{
Validation(sender, e);
RecursiveClearTextBoxes(this.Controls);
}
}
}
dReader.Close();
}
}
conn.Close();
}
}
private void button1_Click(object sender, EventArgs e)
{
CheckUserDatabase(sender, e);
}
图为:
信息:这个.textBox2.Text
是密码
文本框,这个.textBox1.Text
是用户名
文本框,按钮1\u点击
是登录
按钮。
注意:\u wait.ShowDialog
是wait
表单,如下图所示:
更改此选项:
private void button1_Click(object sender, EventArgs e)
{
CheckUserDatabase(sender, e);
}
为此:
private void button1_Click(object sender, EventArgs e)
{
_wait.ShowDialog();
CheckUserDatabase(sender, e);
}
并删除\u wait.ShowDialog()代码>来自CheckUserDatabase()
方法