c#和Access中的from子句语法错误
本文关键字:子句语法 错误 from 中的 Access | 更新日期: 2023-09-27 18:11:43
我一直得到这个运行时错误,syntax error in from clause
。我已经尝试使用我的sql查询访问,它似乎还可以。
这是我的代码,我使用c# windows窗体与文本框和按钮
OleDbConnection conn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:'Users'Misry27'Documents'Visual Studio 2010'Projects'Inventory'Inventory'bin'Debug'Inventory.mdb");
OleDbCommand cmd = new OleDbCommand("select * from Employee where username = '" + this.tbUsername.Text + "' and password = '" + this.tbPassword.Text + "';", conn);
OleDbDataReader dr;
conn.Open();
dr = cmd.ExecuteReader();
int count = 0;
while (dr.Read())
{
count = count + 1;
}
if (count == 1)
{
MessageBox.Show("Username or Password is correct");
}
else
{
MessageBox.Show("Username or Password Incorrect");
}
conn.Close();
如上所述,PASSWORD是一个保留关键字,在从net执行查询时需要用方括号括起来。
通常的建议如下。使用参数化查询来避免解析问题和sql注入,在一次性对象周围使用using语句。
using(OleDbConnection conn = new OleDbConnection(a correct connection string here))
using(OleDbCommand cmd = new OleDbCommand(@"select * from Employee
where username = ? AND [Password] = ?", conn);
{
conn.Open();
cmd.Parameters.AddWithValue("@p1", this.tbUsername.Text);
cmd.Parameters.AddWithValue("@p2", this.tbPassword.Text);
using(OleDbDataReader dr = cmd.ExecuteReader())
{
.....
}
}