想修改用户资料,用的是gridview 中的HyperLinkField 链接到userinfomodi.asp?u_id={0}
    userinfomodi.asp?u_id={0}代码如下:    可更新不成功!不知为什么?请教各位专家!        protected void Page_Load(object sender, EventArgs e)
    {
        string uid;
        uid = Request.QueryString["u_id"];        string strconn = ConfigurationManager.ConnectionStrings["paisoft_water_db"].ConnectionString;
        string strcmd = "select * from user_info where u_id='" + uid + "'";
        SqlConnection conn = new SqlConnection(strconn);
        SqlCommand cmd = new SqlCommand(strcmd, conn);
        conn.Open();
        SqlDataReader sdr = cmd.ExecuteReader();        //LB_msg.Text = sdr.HasRows.ToString();
        if (sdr.Read())
        {
            //设置标志  
            //usetrue = 1;
            //读取数据
            this.TB_uid.Text = sdr["u_id"].ToString();
            this.TB_name.Text = sdr["u_name"].ToString();
            this.TB_tel.Text = sdr["u_phone"].ToString();
            this.TB_cardid.Text = sdr["u_idcard"].ToString();
            this.TB_address.Text = sdr["u_address"].ToString();
            //this.DropDownList2.Text = sdr["u_type"].ToString;
        }
        sdr.Close();
        conn.Close();
        conn.Dispose();
        cmd.Dispose();
    }}
// 更新记录代码如下:    protected void Button_save_Click(object sender, EventArgs e)
    {        //把数据写入到数据库
        string strconn = ConfigurationManager.ConnectionStrings["paisoft_water_db"].ConnectionString;
        SqlConnection conn = new SqlConnection(strconn);
        conn.Open();
        SqlTransaction tran = conn.BeginTransaction();
        string strcmd = "UPDATE [user_info] SET [u_name] = '" + this.TB_name.Text + "' ,[u_phone] = '" + TB_tel.Text + "' ,[u_idcard] = '" + TB_cardid.Text + "' ,[u_address] = '" + TB_address.Text + "' WHERE [u_id] = '" + Request.QueryString["u_id"] + "'";
        SqlCommand cmd = new SqlCommand(strcmd, conn,tran );    try
    {
        cmd.ExecuteNonQuery();
        tran.Commit();
        Label2.Text = "修改成功";
    }
    catch
    {
        tran.Rollback();
        Label2.Text = "错误!";
    }
    finally
    {
        conn.Close();
        conn.Dispose();
        tran.Dispose();
        cmd.Dispose();
    }

解决方案 »

  1.   

    Request.QueryString["u_id"] 有值么跟踪一下你的SQL语句是否有结果呢
      

  2.   

    楼主的u_id是字符型的吗?如果是int的话 为什么要写成这样的SQL语句  where u_id='1'
      

  3.   

    我知道了你那错了SqlCommand cmd = new SqlCommand(strcmd, conn,tran ); 
       你写错了吧。。SqlCommand cmd = new SqlCommand(strcmd, conn); 
      你试试
      

  4.   

    有值,是gridview 中的HyperLinkField 链接到userinfomodi.asp?u_id={0} 。
      

  5.   

    谢谢各位的支持,有关疑问回答如下:第1楼:    
         Request.QueryString["u_id"] 有值么跟踪一下你的SQL语句是否有结果呢
    回复:
          是从gridview 中的HyperLinkField 链接过来的,到userinfomodi.asp?u_id={0}。肯定有值。第2楼:
          执行到 什么位置了 ?
    回复:
          提示修改成功,但数据库中根本没改。第3楼:
         楼主的u_id是字符型的吗? 
         如果是int的话 为什么要写成这样的SQL语句  where u_id='1'
    回复:
         u_id是用户编号,是字符型的,因为了5位数字,但有类似00001这样的,所以只能用字符型。第4楼:
         我知道了你那错了SqlCommand cmd = new SqlCommand(strcmd, conn,tran ); 
        你写错了吧。。SqlCommand cmd = new SqlCommand(strcmd, conn); 
        你试试
    回复:
          tran是事务处理。
       
      

  6.   

    用sql server2000 的事件探查器 ,跟踪一下你的sql语句看看。然后把这个跟踪到得sql语句放到查询分析器里执行看看。
      

  7.   

    是textbox问题!但不知怎么解决!!  因为textbox被修改后,但UPdate时,并没被认可!
      

  8.   

    问题解决了!!
    麻烦:     在Page_Load中,增加
         if (!IsPostBack)
            {
              
             }     就行了!!