删除记录成功,但它会删除Windows窗体中数据库中的所有记录

时间:2013-09-10 13:50:34

标签: c# winforms datagridview ms-access-2010

我有一个问题。当程序运行时我试图删除数据库中的单个记录时会发生这种情况。删除记录正在运行,但它删除了数据库中的所有记录。我该如何解决这个问题?首先,我使用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修改记录。感谢

1 个答案:

答案 0 :(得分:2)

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