0

我有个问题。当我在程序运行时尝试删除数据库中的一条记录时,就会发生这种情况。删除记录正在工作,但它正在删除数据库中的所有记录。我该如何解决?首先,我使用datagridview查看我的数据库中的数据,一旦用户单击某行,并且用户单击删除,它应该删除该用户已选择的某行,但它是删除所有记录。

这是代码:

private void DeleteRecord(object sender, EventArgs e)
{
    if (fifthForm.comboBox1.Text == "English")
    {
        using (OleDbConnection conn = new OleDbConnection(connectionString))
        {
            string query = "DELETE FROM [SeranneRecord]";
            conn.Open();

            using (OleDbCommand cmd = new OleDbCommand(query, conn))
            {
                using (OleDbDataAdapter adapter = new OleDbDataAdapter(query, conn))
                {
                    DataTable ds = new DataTable();
                    dataGridView.Rows.RemoveAt(dataGridView.CurrentRow.Index);
                    adapter.Update(ds);
                    dataGridView.DataSource = ds;
                    cmd.ExecuteNonQuery();

                    System.Media.SoundPlayer sound = 
                             new System.Media.SoundPlayer(
                             @"C:\Windows\Media\Windows Notify.wav");
                    sound.Play();
                    MessageBox.Show("Deleted Successfully", "Deleted");
                }
            }
        }
    }

谢谢,我也想问一下如何使用datagridview修改记录。谢谢

4

1 回答 1

2

您正在删除数据网格行 : ( dataGridView.Rows.RemoveAt(dataGridView.CurrentRow.Index);) 但您没有使用该行中的任何信息在查询中创建 WHERE 子句。你需要像`DELETE FROM tablename WHERE RecordName = 'RecordToDelete'这样的东西。

于 2013-09-10T14:02:25.490 回答