public int UpdateUser(int id,string name,string uid,string pwd,string role)
    {
        if (role=="s") 
            sql="UPDATE [T_Student] SET [Stu_Name]=@name WHERE [ID]=@id";
        else if (role == "t")
            sql = "UPDATE [T_Teacher] SET [Tea_Name]=@name,[Tea_Id]=@uid,[Tea_Pwd]=@pwd WHERE [ID]=@id";
        else
            sql = "UPDATE [T_Admin] SET [Adm_Name]=@name,[Adm_Id]=@uid,[Adm_Pwd]=@pwd WHERE [ID]=@id";
        OleDbParameter[] par ={new OleDbParameter("@name",name),new OleDbParameter("@uid",uid),new OleDbParameter("@pwd",pwd),new OleDbParameter("@id",id)};
        return (OleDbManager.ExecuteNonQuery(sql, par));    }
这段代码错在哪里啊  更新一直用不起

解决方案 »

  1.   

    请问那个sql变量是从哪来的
      

  2.   

       protected void Button1_Click(object sender, EventArgs e)
        {
            Admin ad = new Admin();
            if (ad.UpdateUser(1, "liukai", "0900987", "123", "s") > 0)
            {            Response.Write("123");
            }
        }用以下代码测试页面没任何反应
      

  3.   

    3楼  sql  是类的全局私有哈
      

  4.   

    设下断点找下问题
    先看if语句判断是否满足你的要求
    其次找sql语句的变量是否赋值正确
      

  5.   

    这问题解决了,Access 参数必须要按数据库顺序  - - 不过新问题了来了 ···页面代码如下提示成功,但数据库数据没变 public partial class Admin_Adm_EditRole : System.Web.UI.Page
    {
        int dbid;  
        Admin ad = new Admin();
        Tool tl = new Tool();
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                string id, role;
                if (Request.QueryString["id"] != null && Request.QueryString["id"] != "")
                {
                    id = Request.QueryString["id"];
                    role = id[0].ToString();
                    ddlRole.Items.FindByValue(role).Selected = true;                id = id.Substring(1);
                    dbid = Convert.ToInt32(id);    //标识ID
                    OleDbDataReader dr = ad.GetUser(dbid,role);
                    while (dr.Read())
                    {
                        txtUid.Text = dr["uid"].ToString();
                        txtXm.Text = dr["name"].ToString();
                        txtPwd.Text = dr["pwd"].ToString();
                    }
                    dr.Close();
                }
            }
          
        }
        protected void Button1_Click(object sender, EventArgs e)
        {
            string name, uid, pwd;
            name = txtXm.Text;
            uid = txtUid.Text;
            pwd = txtPwd.Text;
            if (ad.UpdateUser(dbid,name,uid,pwd,ddlRole.SelectedValue.ToString())>0)
            {
                Response.Write(tl.Alert("呵呵呵呵","Adm_Main.aspx"));
            }
           
        }
    }