使用文本框在另一个页面上编辑列表视图行

时间:2019-06-13 09:23:58

标签: c# asp.net

我必须创建一个aspx页面,该页面允许我修改与数据库相关联的listview行的数据,但是我无法获取这些值。

我尝试执行查询字符串

    protected void EditButton_Click(object sender, EventArgs e)
    {

      int id = Convert.ToInt32(((Button)sender).Attributes["ID_Persona"]);
      Response.Redirect("http://localhost:60082/pages/Edit.aspx" + "? 
      ID_Persona=" + id);
    }

并在我需要的页面上获取值

        protected void Page_Load(object sender, EventArgs e)
        {

        TextBox1.Text = Request.QueryString.Get("ID_Persona").ToString();
        }

但是我不知道如何在文本框中显示要编辑的行。

这是重定向到编辑页面的按钮

    protected void EditButton_Click(object sender, EventArgs e)
    {
     int id = Convert.ToInt32(((Button)sender).Attributes["ID_Persona"]);
     Response.Redirect("http://localhost:60082/pages/Edit.aspx" + "? 
     ID_Persona=" + id);
    }

这是编辑页面

 public partial class Edit : System.Web.UI.Page
    { 
    string constr = 
    ConfigurationManager.ConnectionStrings["dbConnection"].ConnectionString;
    protected void Page_Load(object sender, EventArgs e)
    {

        TextBox1.Text = Request.QueryString.Get("ID_Persona").ToString();

    }

    protected void CustomerUpdate(object sender, EventArgs e)
    {
        CustomerUpdate();
    }
    private int Id
    {
        get
        {
            return !string.IsNullOrEmpty(Request.QueryString["ID"]) ? int.Parse(Request.QueryString["ID"]) : 0;
        }
    }
    private void CustomerUpdate()
    {
        using (SqlConnection con = new SqlConnection(constr))
        {
            using (SqlCommand cmd = new SqlCommand("UPDATE Persona SET Nome=@Nome, Cognome=@Cognome,Email=@Email,CodiceFiscale=@CodiceFiscale WHERE ID=@ID", con))
            {

                cmd.Parameters.AddWithValue("Nome", TextBox1.Text);
                cmd.Parameters.AddWithValue("Cognome", TextBox15.Text);
                cmd.Parameters.AddWithValue("Email", TextBox20.Text);
              cmd.Parameters.AddWithValue("CodiceFiscale",TextBox22.Text);
                cmd.Parameters.AddWithValue("ID", "");
                con.Open();
                cmd.ExecuteNonQuery();
                con.Close();
                Response.Redirect(Request.Url.AbsoluteUri, false);
                Response.Redirect("Dash.aspx");

            }
        }
    }
}

2 个答案:

答案 0 :(得分:0)

我认为您应该公开发送诸如查询之类的信息的方法,但我不确定该方法是否可行。

答案 1 :(得分:0)

我解决了

                if (queryy == "1")
                {
                    B2.Visible = false;
                    var connectionString = 
             ConfigurationManager.ConnectionStrings["dbConnection"].ConnectionString;
                    string query = "SELECT ID,Nome,Cognome,Email,CodiceFiscale FROM 
                    Persona WHERE ID = @id";
                    using (SqlConnection con = new SqlConnection(connectionString))
                    {
                        using (var cmd = new SqlCommand(query, con))
                        {
                            cmd.Parameters.AddWithValue("@ID", 
                            Request.QueryString.Get("ID_Persona"));
                            con.Open();
                            using (var rdr = cmd.ExecuteReader())
                            {
                                if (rdr.Read())
                                {

                                    TextBox1.Text = rdr["Nome"].ToString();
                                    TextBox15.Text = rdr["Cognome"].ToString();
                                    TextBox20.Text = rdr["Email"].ToString();
                                    TextBox22.Text = rdr["CodiceFiscale"].ToString();
                                }
                            }
                        }
                    }