如何在数据库C#中查找表的主键

时间:2013-02-18 04:50:24

标签: c# mysql datagridview datatable dataset

您好我正在使用C#窗体和mySQL数据库,我能够连接到数据库,检索数据并在DataGridView中显示它。

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

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

DELETE FROM(选定表格)WHERE(主要栏目的名称=所选行的主键列的值

Bold部分是我被困的地方,有些人可以帮我解决或知道如何删除数据库中所选行的其他方法吗?

3 个答案:

答案 0 :(得分:4)

您可以使用sql查询从表SHOW KEYS FROM table WHERE Key_name = 'PRIMARY'

中获取主键

答案 1 :(得分:2)

如果您事先不知道主键列是什么,那么您需要检查表的信息以找到它。 this question中的答案应该使用记录hereSHOW 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
}

假设第一列是主键。