0

嗨,我正在使用 C# 窗口窗体和 mySQL 数据库,我能够连接到数据库、检索数据并将其显示在 DataGridView 中。

现在,如果用户单击 DataGridView 中的一行并按 Delete 按钮,我希望在数据库中删除该选定行。

问题是我需要知道哪些列是主键,以便使用以下 SQL 查询将其从数据库中删除:

DELETE FROM (selected table) WHERE ( Primary column's name(s) = value(s) of primary key column(s) of selected row )

粗体部分是我被困的地方,有人可以帮助我还是知道如何以其他方式删除数据库中的选定行?

4

3 回答 3

4

您可以使用 sql 查询从表中获取主键SHOW KEYS FROM table WHERE Key_name = 'PRIMARY'

于 2013-02-18T05:04:24.823 回答
2

如果您事先不知道主键列是什么,那么您需要检查表的信息才能找到它。这个问题的答案应该为您提供有关如何使用此处SHOW INDEX记录的 MySQL 调用继续使用 MySQL 的线索。

于 2013-02-18T05:00:49.210 回答
1

您可以在另一列(隐藏)中分配datagridview中主键的值,以便在调用Delete()函数时,可以获取主键的值:

Int64 iRecordId =0;
int selectedIndex = 0;

if (datagridview1.SelectedRows.Count > 0)
{
   selectedIndex = datagridview1.SelectedRows[0].Index;
   iRecordId = Convert.toInt64(datagridview1.Rows[selectedIndex].Cells[0].Value.toString());
   // insert delete commands heere
}

假设第一列是主键。

于 2013-02-18T04:54:08.057 回答