OleDbConnection conn = new OleDbConnection(Service.connectionString);
                string updateSqlForName = "update manager set username=?, password=? where id=?";
                OleDbCommand cmd = new OleDbCommand(updateSqlForName, conn);
                cmd.Parameters.Add(new OleDbParameter("@username", OleDbType.VarWChar, 50)).Value = tb_newusername.Text.ToString();
                cmd.Parameters.Add(new OleDbParameter("@password", OleDbType.VarWChar, 50)).Value = tb_newpass.Text.ToString();
                cmd.Parameters.Add(new OleDbParameter("@id", OleDbType.VarWChar, 50)).Value = Session["ManagerId"].ToString();                conn.Open();
                cmd.ExecuteNonQuery();
                Response.Write("<script>alert('修改成功,请您重新登录!')</script>");
                AbandonSession();
                conn.Close();
                conn.Dispose();
提示Update 语法错误
帮忙解决一下,谢谢

解决方案 »

  1.   

    在.net中参数须用@参数名 这种形式的
      

  2.   

    你上面是?下面是@password。
      

  3.   

    username=@username 或者 username='"+ tb_newusername.Text.ToString() +"'
      

  4.   

    OleDbConnection conn = new OleDbConnection(Service.connectionString);
                    string updateSqlForName = "update manager set username=? where id=?";
                    OleDbCommand cmd = new OleDbCommand(updateSqlForName, conn);
                    cmd.Parameters.Add(new OleDbParameter("@username", OleDbType.VarWChar, 50)).Value = tb_newusername.Text.ToString();
                    cmd.Parameters.Add(new OleDbParameter("@id", OleDbType.VarWChar, 50)).Value = Session["ManagerId"].ToString();
    可是这个是能运行过去的 数据库更新了 就把username=?换成password=? , "@username"改成"@password" , tb_newusername改成tb_newpass 就提示语法错误 数据库看了 字段名没错 类型也对