如何删除数据库中datagridview中的选定行?

时间:2016-05-04 17:06:01

标签: c#

代码的唯一问题是,当存在相同的Id时,它也会删除它,这实际上并没有删除我在datagridview中选择的行。

       private void Delete_Button_Click(object sender, EventArgs e)
    {

        if (dataGridView1.SelectedRows.Count > 0)
        {
            int Index = dataGridView1.CurrentCell.RowIndex;
            if (MessageBox.Show("Are you sure?", "Confirm", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                string delete = dataGridView1.Rows[Index].Cells[0].Value.ToString();
                SqlCeCommand cmd = new SqlCeCommand("delete from Contact_List where Id "+ delete + "'", con);
                con.Open();
                cmd.ExecuteNonQuery();
                MessageBox.Show("Information Deleted.....");
                filldata();
            }
        }
        else
        {
            MessageBox.Show("Please Select a Row");
        }
        con.Close();
    }

任何人都可以帮助我吗?所以这段代码只会删除我选择的行以及数据库。

谢谢!抱歉英语不好

1 个答案:

答案 0 :(得分:0)

首先,使用参数化查询。其次,你需要在gridview中放置一个关键字段(即使你只是将它放在一个隐藏的列中),或者重写你的delete语句以包含足够的列,它只删除你想要的行。如果您无法根据网格视图中选定行中的值确定表中的唯一行,那么您基本上就没有运气了。