您好我正在使用C#窗体和mySQL数据库,我能够连接到数据库,检索数据并在DataGridView中显示它。
现在,如果用户单击DataGridView中的某一行并按Delete按钮,我希望在数据库中删除所选行。
问题是我需要知道哪些列是主键,以便使用此SQL查询将其从数据库中删除:
DELETE FROM(选定表格)WHERE(主要栏目的名称=所选行的主键列的值)
Bold部分是我被困的地方,有些人可以帮我解决或知道如何删除数据库中所选行的其他方法吗?答案 0 :(得分:4)
您可以使用sql查询从表SHOW KEYS FROM table WHERE Key_name = 'PRIMARY'
答案 1 :(得分:2)
如果您事先不知道主键列是什么,那么您需要检查表的信息以找到它。 this question中的答案应该使用记录here的SHOW INDEX
MySQL调用为您提供有关如何继续使用MySQL的线索。
答案 2 :(得分: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
}
假设第一列是主键。