gpt4 book ai didi

c# - C#-无法使用sqlite数据库删除datagridview中的多行

转载 作者:行者123 更新时间:2023-12-03 10:04:55 25 4
gpt4 key购买 nike

我有一个datagridview在其中添加一些列,第一列具有复选框
当我尝试使用复选框选择多行并将其删除时,即使我选择了多行,每次也只会删除一行。

我用于填充datagridview的代码

 SQLiteDataAdapter da = new SQLiteDataAdapter("Select * From Data", con);
DataTable dt = new DataTable();
da.Fill(dt);

foreach (DataRow item in dt.Rows)
{
int n = dataGridView1.Rows.Add();
dataGridView1.Rows[n].Cells[0].Value = "false";
dataGridView1.Rows[n].Cells[1].Value = item["id"].ToString();
dataGridView1.Rows[n].Cells[2].Value = item["car_num"].ToString();
dataGridView1.Rows[n].Cells[3].Value = item["customer"].ToString();
dataGridView1.Rows[n].Cells[4].Value = item["driver"].ToString();
dataGridView1.Rows[n].Cells[5].Value = item["first"].ToString();
dataGridView1.Rows[n].Cells[6].Value = item["second"].ToString();
dataGridView1.Rows[n].Cells[7].Value = item["sum"].ToString();
dataGridView1.Rows[n].Cells[8].Value = item["price"].ToString();
dataGridView1.Rows[n].Cells[9].Value = item["date1"].ToString();
dataGridView1.Rows[n].Cells[10].Value = item["date2"].ToString();
dataGridView1.Rows[n].Cells[11].Value = item["city"].ToString();
dataGridView1.Rows[n].Cells[12].Value = item["type"].ToString();

}


我用于删除的代码

private void bDelete_Click(object sender, EventArgs e)
{
foreach (DataGridViewRow item in dataGridView1.Rows)
{

if (bool.Parse(item.Cells[0].Value.ToString()))
{
if (MessageBox.Show("Are you sure you want to delete these data ? ", "Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes)
{
con.Open();
SQLiteCommand cmd = new SQLiteCommand("Delete From Data Where id='"+item.Cells[1].Value.ToString()+"'", con);
cmd.ExecuteNonQuery();
con.Close();
SQLiteDataAdapter da = new SQLiteDataAdapter("Select * From Data", con);
DataTable dt = new DataTable();
dataGridView1.Rows.Clear();

da.Fill(dt);
MessageBox.Show("Success");
}

}
}

最佳答案

我认为问题出在foreach循环内的dataGridView1.Rows.Clear();。由于foreach循环在(DataGridViewRow item in dataGridView1.Rows)上进行迭代,因此在清除了行之后,就不再需要进行迭代。

关于c# - C#-无法使用sqlite数据库删除datagridview中的多行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46796694/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com