此代码运行时,出现UPDATE写入错误。有人知道问题是什么以及如何解决?
这是代码:
string sql2 = "UPDATE ezuser";
sql2 += " SET fname = '" + Request.Form["fname"]+ "'";
sql2 += " , lname = '" + Request.Form["lname"] + "'";
sql2 += " , fav = '" + Request.Form["fav"] + "'";
sql2 += " , pw = '" + Request.Form["pw"] + "'";
sql2 += " , order = '" + Request.Form["order"] + "'";
sql2 += " WHERE email = '" + Request.Form["email"] + "'";
MyAdoHelper.DoQuery(fileName, sql2);
答案 0 :(得分:0)
尽管问题并没有告诉我很多有关列的数据类型的信息,但我唯一可以怀疑的是order列,它可能是整数数据类型,并且您可能要向其传递字符串。
其他说明:您的代码看起来非常容易受到sql注入的攻击。也请看看。
答案 1 :(得分:0)
至少在SQL Server中,order
是保留的关键字,如果从字面上用作列名,则需要正确引用。像这样:
sql2 += " , [order] = '" + Request.Form["order"] + "'";
正如sabhari所提到的,您需要学习有关SQL注入的知识以及如何适当地防止这种情况的发生。研究您正在使用的编程语言的参数化语句。