我收到了这种错误:
其他信息:查询表达式中的语法错误(缺少运算符)' acount no = no。,'
......每次我撤回或存放一些东西
string sql = default(string);
DataTable Log_in = new DataTable();
con.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\anaabenoja\Documents\sample connection.accdb";
sql = "SELECT * FROM Acc_info where account_no = " + lblaccno.Text + "";
cmd.Connection = con;
cmd.CommandText = sql;
da.SelectCommand = cmd;
**da.Fill(Log_in);**
if (Log_in.Rows.Count > 0)
{
....
答案 0 :(得分:0)
错误消息绝对可以满足您的需求:
附加信息:查询表达式'acount no = no。,'
中的语法错误(缺少运算符)
如果查看您的查询,您会发现错误:
sql = "SELECT * FROM Acc_info where account_no = " + lblaccno.Text + "";
您不会将某些TextBox
输入的实际值放入查询中,而是将Text
- 标签的值(包含字符串{ {1}})。
因此,如果您按如下方式更改查询,它应该有效(假设您有一个TextBox txtaccno ):
no.
另外请记住,您的代码非常倾向于SQL注入。如果恶意用户将类似sql = "SELECT * FROM Acc_info WHERE account_no = " + txtaccno.Text;
的内容放入TextBox中,则会出现问题...
要防止这些攻击,您可以使用parameterized queries。