Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net UPDATE语句中出现语法错误。代码有什么问题?_Asp.net_Web_Sql Update - Fatal编程技术网

Asp.net UPDATE语句中出现语法错误。代码有什么问题?

Asp.net UPDATE语句中出现语法错误。代码有什么问题?,asp.net,web,sql-update,Asp.net,Web,Sql Update,我正试图从网上更新我的数据库,但它不起作用,我不知道为什么。它说:“回发或回调参数无效。在配置或页面中使用启用事件验证。出于安全目的,此功能验证回发或回调事件的参数是否源自最初呈现它们的服务器控件。如果数据有效且符合要求,请使用ClientScriptManager.RegisterForEventValidation方法注册回发或回调数据以进行验证。“ 我需要做什么 string MySQL = @"UPDATE users (email, pname, accou

我正试图从网上更新我的数据库,但它不起作用,我不知道为什么。它说:“回发或回调参数无效。在配置或页面中使用启用事件验证。出于安全目的,此功能验证回发或回调事件的参数是否源自最初呈现它们的服务器控件。如果数据有效且符合要求,请使用ClientScriptManager.RegisterForEventValidation方法注册回发或回调数据以进行验证。“ 我需要做什么

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"];