代码的唯一问题是,当存在相同的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();
}
任何人都可以帮助我吗?所以这段代码只会删除我选择的行以及数据库。
谢谢!抱歉英语不好
答案 0 :(得分:0)
首先,使用参数化查询。其次,你需要在gridview中放置一个关键字段(即使你只是将它放在一个隐藏的列中),或者重写你的delete语句以包含足够的列,它只删除你想要的行。如果您无法根据网格视图中选定行中的值确定表中的唯一行,那么您基本上就没有运气了。