【发布时间】:2019-10-10 00:17:28
【问题描述】:
我收到以下错误:
INSERT INTO 语句中的语法错误。
我似乎无法找到错误。这是代码:
if (Request["su"] == "save")
{
string sqlCommand = "";
string fileName = "UsersDB.accdb";
string tableName = "Table 2";
string website_name, website_psw;
website_name = Request["psw_name"];
website_psw = Request["psw"];
sqlCommand = "INSERT INTO " + tableName + " (fname, lname, umail, upassword, gender, age, uid) ";
sqlCommand += "VALUES ('"+0+ "','" + Session["umail"].ToString() + "','" + website_psw + "','" + website_name + "')";
MyAdoHelper.DoQuery(fileName, sqlCommand);
}
对于数据库,它有 4 行:
uid, uidd, psw_name, psw
导致此类错误的代码中的问题是什么?
【问题讨论】:
-
您确定该表称为“表 2”吗?我几乎可以肯定,当您引用这样的表时,sql 查询中不能有空格。如果是,请尝试添加方括号,例如“INSERT INTO [” tableName + “] ...”
-
您查询插入问题,因为您的表有 7 列,并且您仅传递 4 列的值
-
也发布实际错误。这有助于我们不要猜测它可能是什么。
-
但是查询中最重要的问题是您允许在数据库上发生的 SQL 注入免费方
-
还有一个强制性的“使用 ORM,如 Entity Framework 或 nHibernate,而不是尝试在代码中构建 SQL 语句”