【发布时间】:2015-03-18 15:49:37
【问题描述】:
在我的程序中,我在一个表单上有一个 dgv。当我从 dgv 中删除一个条目时,我还想从 SQLite 数据库中删除该条目,这样它就不会重新出现。
我有一个“id”列(PRIMARY KEY AUTOINCREMENT),因此每个项目都是唯一的。
我遇到的问题是访问删除行的“id”。
以下是部分代码:
DialogResult deleteitem = MessageBox.Show("Delete the selected item?", "Delete Item", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk);
if (deleteitem == DialogResult.Yes)
{
if (!this.dataGridView1.Rows[this.rowIndex].IsNewRow)
{
SetConnection();
sqlconnection.Open();
this.dataGridView1.Rows.RemoveAt(this.rowIndex);
sqlcmd = new SQLiteCommand("DELETE FROM table1 WHERE id=???", sqlconnection);
sqlcmd.ExecuteNonQuery();
}
}
【问题讨论】:
-
行中的 ID 在某处吗?如果是这样,请在删除该行之前提取它的值。
-
不,dgv 只显示“项目”和“数量”。
-
使用行的
.DataBoundItem属性访问其基础数据记录。 -
如果您将 Id 添加为 hidden column,那么您可以检索它以删除该项目
-
如何检索“id”号码?我当前的代码是:
int id = Convert.ToInt32(dataGridView1.SelectedCells[0].Value);,但变量 id 在此语句中未被识别:sqlcmd = new SQLiteCommand("DELETE FROM table1 WHERE id= " + id + "", sqlconnection);
标签: c# winforms sqlite datagridview