【问题标题】:Delete a row from showed up dataGridView?从显示的dataGridView中删除一行?
【发布时间】:2015-02-13 15:31:03
【问题描述】:

我必须构建 APP 来搜索、更新、删除和添加数据库中的信息,其中包含 3 个表。我使用 SQL CE,我已经创建了搜索和添加按钮,它们可以工作。

每个表都有 1 个搜索按钮和 3 个文本框,它们为我正在搜索的表显示一个 datagridview。我已经努力搜索,但似乎找不到解决方案,我想制作一个删除按钮,该按钮从弹出的 datagridview 中删除/真的对不起我的英语/我希望你明白。

我找到了一种仅从 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);
        }
    }
}

【问题讨论】:

  • 您想从一个 dvg 中删除一行?并且数据库应该更新到。我理解你的意思吗?
  • 不是真的,为错误道歉。我想删除 datagridview 中选定的行,我只使用带有 1 个按钮的 atm,然后更改为保存。
  • 你不能实现我在答案中设置的代码吗?

标签: c# mysql datagridview


【解决方案1】:

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

代码

DataGridViewRow deleteRow = grid.CurrentRow;

grid.CurrentRow.Selected = false;

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

grid.Rows.RemoveAt(deleteRow);

如果您想更新您的 MySql 数据库,您必须检查行 ID 并调用 MySql 中的删除方法,例如:

代码

 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 名称和当前表名称,但我希望这个示例能解决您的问题!如果它不保存你的概率。请发表评论,然后我会尝试为您编写一些代码!祝你有美好的一天。

【讨论】:

  • 它不能解决我的问题.. 所有 3 个网格视图都不可见,例如我想搜索学生,当表“学生”弹出的数据网格视图我希望能够删除单元格或我想要使用删除按钮的行,但也使用此删除按钮,如果你现在得到它,我希望能够在我搜索它们时在其他 2 个网格视图中删除。
猜你喜欢
  • 1970-01-01
  • 2022-10-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-08
  • 1970-01-01
相关资源
最近更新 更多