从显示的dataGridView中删除一行?

时间:2014-12-15 13:57:36

标签: c# mysql datagridview

我必须使用3个表构建在数据库中搜索,更新,删除和添加信息的APP。我使用SQL CE,我已经做了搜索和添加按钮,他们工作。

我有一个搜索按钮和每个表的3个文本框,显示我正在搜索的表的数据网格视图。我一直在努力搜索,但似乎无法找到解决方案,我想制作一个删除按钮,从datagridview中删除哪个popup /真的很抱歉我的英文/我希望你明白了。

我找到了一种只从1 dgv删除的方法,实际上它甚至不能保存dgv。这是我用于搜索按钮的代码,我不是要求别人为我写的,而只是为了提示如何做。

private void btnSearch_Click(object sender, EventArgs e)
{
    if (textBox1.Text == "" && textBox2.Text == "" && textBox3.Text == "")
    {
        dataGridView1.Hide();
        dataGridView2.Hide();
        dataGridView3.Hide();
        MessageBox.Show("Insert something to search!");
        return;
    }
    else if (textBox1.Text == "" && textBox3.Text == "")
    {
        try
        {
            this.institutionTableAdapter.SearchNameInst(this.database1DataSet1.Institution, textBox2.Text);
            dataGridView3.Show();
            dataGridView2.Hide();
            dataGridView1.Hide();
        }
        catch (System.Exception ex)
        {
            System.Windows.Forms.MessageBox.Show(ex.Message);
        }
    }
    else if (textBox2.Text == "" && textBox3.Text == "")
    {
        try
        {
            this.studentsTableAdapter.SearchStudName(this.database1DataSet1.Students, textBox1.Text);
            dataGridView3.Hide();
            dataGridView2.Show();
            dataGridView1.Hide();
        }
        catch (System.Exception ex)
        {
            System.Windows.Forms.MessageBox.Show(ex.Message);
        }
    }
    else if (textBox1.Text == "" && textBox2.Text == "")
    {
        try
        {
            this.typeinstTableAdapter.SearchNameTown(this.database1DataSet1.Typeinst, textBox3.Text);
            dataGridView3.Hide();
            dataGridView2.Hide();
            dataGridView1.Show();
        }
        catch (System.Exception ex)
        {
            System.Windows.Forms.MessageBox.Show(ex.Message);
        }
    }
}

1 个答案:

答案 0 :(得分:0)

以下代码删除ONE datagridview中的当前行:

<强> CODE

DataGridViewRow deleteRow = grid.CurrentRow;

grid.CurrentRow.Selected = false;

grid.Rows[deleteRow+1].Selected = true;

grid.Rows.RemoveAt(deleteRow);

如果要更新MySql-Database,则必须检查行ID并在MySql中调用delete-methode,如:

<强> CODE

 try
 {
                  dt = new DataTable();

                  using (MySqlConnection conn = new MySqlConnection("datasource=localhost;port=3306;username=test;password=1234"))
                  {

                      conn.Open();
                      using (MySqlCommand cmd = new MySqlCommand())
                      {
                          cmd.Connection = conn;

                          string tabvalue = grid.Rows[grid.CurrentRow.Index].Cells[0].Value.ToString();

                          cmd.CommandText = ("DELETE FROM `Table`.`currenttable` WHERE `ID` ='" +      tabvalue + "';");
                          MySqlDataAdapter da = new MySqlDataAdapter(cmd);
                          da.Fill(dt);
                      }
                      conn.Close();
                  }
              }

catch (Exception ex)
    {
       MessageBox.Show(ex.Message);
    }

您必须更改DataGridView名称和当前表名称,但我希望此示例将解决您的问题!如果它不保存你的概率。请发表评论然后我会尝试为你写一些代码!祝你有愉快的一天。