string strsql = "";
                if (TextBox2.Text == "edit")
                {
                    strsql = "update user set uname=@p1,password=@p2,type=@p3 where uid=" + TextBox1.Text;
                }
                else if (TextBox2.Text == "add")
                {
                    strsql = "insert into user(uname,password,type) values(@p1,@p2,@p3)";
                   
                }
                else if (TextBox2.Text == "editself")
                {
                    strsql = "update [user] set uname=@p1,password=@p2 ,type=@p3  where uid=" + Session["id"];
                }
                SqlCommand cmd = new SqlCommand(strsql, cn);
                cmd.Parameters.Add("@p1", SqlDbType.VarChar).Value = txtyhm.Text;
                cmd.Parameters.Add("@p2", SqlDbType.VarChar).Value = txtxmm.Text;
                cmd.Parameters.Add("@p3", SqlDbType.Char).Value = ddlyhlx.SelectedValue;
                cmd.CommandText = strsql;
                cmd.ExecuteNonQuery();
                cn.Close();
                Response.Write("<script>alert('操作成功!')</script>");

解决方案 »

  1.   

    跟踪一下,确认执行到  cmd.ExecuteNonQuery()了
      

  2.   

    可能where里面没有匹配到相应uid 所以更新了0条数据
      

  3.   

    你加一个try{}catch(Exception ex){ex.Message};
    看下是不是你没有加异常处理,程序直接终止了
      

  4.   

    strsql = "update user set uname=@p1,password=@p2,type=@p3 where uid=" + TextBox1.Text.Trim(0;加上Trim()试试看
      

  5.   

    前面的都可以,就是执行到cmd.ExecuteNonQuery();这句的时候就直接跳出try语句了
      

  6.   

    三个SQL语句,每一个都试了,全部都是不执行
    别的页面上类似的语句都能正确的执行,只有这一个,总是不成功
      

  7.   

    在调试中把cmd中的CommandText复制出来
    然后直接在查询分析器中运行看看
      

  8.   

    cmd.Parameters.Add("@p1", SqlDbType.VarChar).Value = txtyhm.Text;
    试一下cmd.Parameters.AddValue("@p1", txtyhm.Text)
      

  9.   

    update user set uname='zhangruiling',password='111',type='0' where uid=1
    在查询分析器中执行这句话时出错
    【消息 156,级别 15,状态 1,第 1 行
    关键字 'user' 附近有语法错误。】
      

  10.   

    update user set uname='zhangruiling',password='111',type='0' where uid='1'
    加上单引号看看
      

  11.   

    update [user] set uname='zhangruiling',password='111',type='0' where uid=1
    user打上[]
      

  12.   

    谢谢各位了,我自己改完了!
    不能使用【user】做表名,查询的时候没有问题,但是更新的时候有错误,改成user1就能正常执行了
      

  13.   

    加上[]貌似也不行,user应该是sql server里面的某个关键字