我在aspx中用Repeater显示了数据表的数据,其中有一栏起编辑作用
我用如下方法转到了另外一个aspx中去操作
<asp:HyperLink ImageUrl="Ico/Edit.gif" NavigateUrl='<%# "B.aspx?id="+DataBinder.Eval(Container.DataItem,"bh").ToString()%>' runat="server" ID="Hyperlink1"/>
我的问题是在B.aspx中我该如何显示这条记录的所有信息并在此基础上加以更新?
请大家给我详细讲讲,最好给点源码。

解决方案 »

  1.   

    你不是传了一个id到B.aspx了吗,在B.aspx中就根据这个id查询数据库,把需更新的字段内容列出来,供用户修改,修改完了Update数据库。
      

  2.   

    比如你要更新一个用户姓名,那么你就得在B.aspx上放一个TextBox控件吧。
    B.aspx.cs中:
    //显示
    string id = Request.QueryString["id"];
    string sql = "SELECT userName FROM tableName WHERE id=@id";
    SqlConnection conn = new SqlConnection();
    conn.ConnectionString = "连接字符串";
    SqlCommand cmd = new SqlCommand(sql,conn);
    cmd.Parameters.Add("id",SqlDbType.VarChar,10).Value = id;
    try
    {
    conn.open();
    SqlDataReader reader = cmd.ExecuteReader();
    if(reader.Read())
    {
    this.txtName.Text = reader["userName"].ToString;
    }
    }
    catch(Exception error)
    {
    throw error;
    }
    finally
    {
    conn.Close();
    }//更新
    string sql1 = "update tableName set userName=@userName where id=@id";
    SqlCommand cmd1 = new SqlCommand(sql1,conn);
    cmd1.Parameters.Add("userName",SqlDbType.VarChar,100).Value = this.txtName.Text;
    cmd1.Parameters.Add("id",SqlDbType.VarChar,10).Value = id;
    try
    {
    conn.Open();
    cmd.ExecuteNonQuery();
    }
    catch(Exception error)
    {throw error;}
    finally
    {conn.Close();}写得匆忙,但大概就是这样吧。