Asp.net UPDATE语句中出现语法错误。代码有什么问题?
我正试图从网上更新我的数据库,但它不起作用,我不知道为什么。它说:“回发或回调参数无效。在配置或页面中使用启用事件验证。出于安全目的,此功能验证回发或回调事件的参数是否源自最初呈现它们的服务器控件。如果数据有效且符合要求,请使用ClientScriptManager.RegisterForEventValidation方法注册回发或回调数据以进行验证。“ 我需要做什么Asp.net UPDATE语句中出现语法错误。代码有什么问题?,asp.net,web,sql-update,Asp.net,Web,Sql Update,我正试图从网上更新我的数据库,但它不起作用,我不知道为什么。它说:“回发或回调参数无效。在配置或页面中使用启用事件验证。出于安全目的,此功能验证回发或回调事件的参数是否源自最初呈现它们的服务器控件。如果数据有效且符合要求,请使用ClientScriptManager.RegisterForEventValidation方法注册回发或回调数据以进行验证。“ 我需要做什么 string MySQL = @"UPDATE users (email, pname, accou
string MySQL = @"UPDATE users
(email, pname, accountname, pid, age, passw)
Set(@email, @pname,@account,@pid, @age, @passw) where
(id='"+Request.Form["id"]+"')";
string strConnection = "Provider=Microsoft.ACE.OLEDB.12.0;Data
Source=" +
System.Web.HttpContext.Current.Server.MapPath(@"DataBase\Users.accdb");
using(System.Data.OleDb.OleDbConnection con = new
System.Data.OleDb.OleDbConnection(strConnection))
using(System.Data.OleDb.OleDbCommand cmd = new
System.Data.OleDb.OleDbCommand(MySQL, con))
{
con.Open();
cmd.Parameters.Add("@email",
System.Data.OleDb.OleDbType.VarWChar).Value = Request.Form["email"];
cmd.Parameters.Add("@pname",
System.Data.OleDb.OleDbType.VarWChar).Value = Request.Form["pname"];
cmd.Parameters.Add("@account",
System.Data.OleDb.OleDbType.VarWChar).Value = Request.Form["accountname"];
cmd.Parameters.Add("@pid",
System.Data.OleDb.OleDbType.VarWChar).Value = Request.Form["pid"];
cmd.Parameters.Add("@age",
System.Data.OleDb.OleDbType.VarWChar).Value = Request.Form["age"];
cmd.Parameters.Add("@passw",
System.Data.OleDb.OleDbType.VarWChar).Value = Request.Form["passw"];
cmd.ExecuteNonQuery();
con.Close();
}
Response.Redirect("showalldata.aspx");
您的
UPDATE
station语法错误。因此它抛出语法错误
而不是直接将Request.Form[“id”]
分配给WHERE
子句中的id
列,使用cmd.Parameters对其进行赋值。也添加。因为这可能会导致SQL注入攻击
下面的查询将起作用
string MySQL = @"UPDATE users SET
email = @email,
pname = @pname,
accountname= @account,
pid = @pid,
age = @age,
passw = @passw
where id = @paramid ";
...
...
cmd.Parameters.Add("@paramid",
System.Data.OleDb.OleDbType.VarWChar).Value = Request.Form["id"];
您的UPDATE
station语法错误。因此它抛出语法错误
而不是直接将Request.Form[“id”]
分配给WHERE
子句中的id
列,使用cmd.Parameters对其进行赋值。也添加。因为这可能会导致SQL注入攻击
下面的查询将起作用
string MySQL = @"UPDATE users SET
email = @email,
pname = @pname,
accountname= @account,
pid = @pid,
age = @age,
passw = @passw
where id = @paramid ";
...
...
cmd.Parameters.Add("@paramid",
System.Data.OleDb.OleDbType.VarWChar).Value = Request.Form["id"];