Gridview过滤DataEdit数据更新数据

时间:2016-07-17 14:22:03

标签: c# asp.net

我有一个问题。我的问题是在过滤数据未更新或删除所选数据后,总是在gridview中选择(过滤后)第一个数据。如何更改此项。谢谢

1 个答案:

答案 0 :(得分:0)

贝洛是我的C#代码:

   protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e) {

        GridView1.PageIndex = e.NewPageIndex;

        BindGrid();

    }


    private void BindGrid()
    {

        string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;

        using (MySqlConnection con = new MySqlConnection(constr))
        {

            using (MySqlCommand cmd = new MySqlCommand("SELECT * FROM users"))
            {

                using (MySqlDataAdapter sda = new MySqlDataAdapter())
                {

                    cmd.Connection = con;

                    sda.SelectCommand = cmd;

                    using (DataTable dt = new DataTable())
                    {

                        sda.Fill(dt);

                        GridView1.DataSource = dt;

                        GridView1.DataBind();

                    }

                }

            }

        }

    }
    protected void GridView1_RowEditing(object sender, GridViewEditEventArgs e)
    {
        GridView1.EditIndex = e.NewEditIndex;

        this.BindGrid();
    }
    protected void GridView1_RowUpdating(object sender, GridViewUpdateEventArgs e)
    {
        GridViewRow row = GridView1.Rows[e.RowIndex];

        int id = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Values[0]);

        string name = (row.FindControl("txtname") as TextBox).Text;

        string surname = (row.FindControl("txtsurname") as TextBox).Text;

        string email = (row.FindControl("txtemail") as TextBox).Text;

        string password = (row.FindControl("txtpassword") as TextBox).Text;

        string online = (row.FindControl("CheckBox1") as CheckBox).Checked ? "1" : "0";

        string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;

        using (MySqlConnection con = new MySqlConnection(constr))
        {

            using (MySqlCommand cmd = new MySqlCommand("UPDATE users SET name = @name, password = @password , email = @email , password = @password , online = @online  WHERE id = @İD"))
            {

                using (MySqlDataAdapter sda = new MySqlDataAdapter())
                {

                    cmd.Parameters.AddWithValue("@İD", id);

                    cmd.Parameters.AddWithValue("@name", name);

                    cmd.Parameters.AddWithValue("@surname", surname);

                    cmd.Parameters.AddWithValue("@email", email);

                    cmd.Parameters.AddWithValue("@password", password);

                    cmd.Parameters.AddWithValue("@online", online);

                    cmd.Connection = con;

                    con.Open();

                    cmd.ExecuteNonQuery();

                    con.Close();

                }

            }

        }






        GridView1.EditIndex = -1;

        this.BindGrid();
    }
    protected void GridView1_RowCancelingEdit(object sender, GridViewCancelEditEventArgs e)
    {
        GridView1.EditIndex = -1;

        this.BindGrid();
    }
    protected void GridView1_RowDeleting(object sender, GridViewDeleteEventArgs e)
    {



        int id = Convert.ToInt32(GridView1.DataKeys[e.RowIndex].Values[0]);

        string constr = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;

        using (MySqlConnection con = new MySqlConnection(constr))
        {

            using (MySqlCommand cmd = new MySqlCommand("DELETE FROM users WHERE id = @İD"))
            {

                using (MySqlDataAdapter sda = new MySqlDataAdapter())
                {

                    cmd.Parameters.AddWithValue("@İD", id);

                    cmd.Connection = con;

                    con.Open();

                    cmd.ExecuteNonQuery();

                    con.Close();

                }

            }

        }





        this.BindGrid();
    }



    public MySqlConnection bag = new MySqlConnection("Server=localhost; userid=root; password=; database=user; Pooling=false");

    public DataTable tablo = new DataTable();

    public MySqlDataAdapter adtr = new MySqlDataAdapter();

    public MySqlCommand kmt = new MySqlCommand();


    protected void TextBox1_TextChanged(object sender, EventArgs e)
    {



        BindGrid1();





    }

    private void BindGrid1()
    {

        MySqlConnection con;
        con = new MySqlConnection("Server=localhost; userid=root; password=; database=user;  Convert Zero Datetime=True; Pooling=false");
        string search = "select * from users where name like '%" + TextBox1.Text + "%'";
        MySqlDataAdapter adaptor = new MySqlDataAdapter(search, con);
        DataTable table = new DataTable();
        adaptor.Fill(table);
        GridView1.DataSource = table;
        GridView1.DataBind();

    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        BindGrid1();
    }

    protected void Button2_Click(object sender, EventArgs e)
    {
        BindGrid();
    }

    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
    {

        if (e.Row.RowType == DataControlRowType.DataRow && GridView1.EditIndex != e.Row.RowIndex)
        {


            (e.Row.Cells[5].Controls[2] as LinkButton).Attributes["onclick"] = "return confirm('');";


        }





    }