private void btnLogin_Click(object sender, EventArgs e)
{
connection.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
command.CommandText = "select * from Cafelist where Username = '" + txtUsn.Text + "' and Password = '" + txtPass.Text + "'";
OleDbDataReader reader = command.ExecuteReader();
int count = 0;
while (reader.Read())
{
count = count + 1;
}
if(count ==1)
{
MessageBox.Show("Username and password is correct");
}
else if (count > 1)
{
MessageBox.Show("Duplicate Found");
}
else
{
MessageBox.Show("Username/Password Incorrect");
}
connection.Close();
}
尝试使用此代码拉出usn并通过登录,并得到此错误,尝试寻找解决方案,但未发现与我的问题类似的任何东西,我理解这可能是很基本的东西,但请放轻松因为我只玩过C#几周了,这是我第一次尝试使用数据库。
不尝试做任何安全功能,只是想弄清楚为什么当我输入文本并单击“登录”时出现此错误,我一直在跟随youtube视频尝试并自学(与这个主题一样多),但是他不会遇到此错误,我已经将自己Google遗忘了。
在此先感谢您,由于我这是我第一次发布,因此需要提供更多信息。
答案 0 :(得分:1)
您需要在查询中插入要替换的参数以获取实际值,查询和参数在OleDbCommand
上分开,尝试像这样替换cmd.CommandText
command.CommandText = "select * from Cafelist where Username = @UserName and Password = @UserPass";
然后您需要像这样将参数提供给cmd:
cmd.Parameters.AddRange(new OleDbParameter[]
{
new OleDbParameter("@UserName", txtUsn.Text),
new OleDbParameter("@UserPass", txtPass.Text),
...
});