在vb.net中更新没有主键的MS-Access数据表

时间:2013-12-10 10:56:45

标签: sql vb.net ms-access datagridview

我已经在部门中建立了一个与员工,他们的部门,加入日期和退出日期相关的数据表。每个员工都可以拥有多个部门。因此我不能拥有主键。那么我该如何为此编写更新查询。我正在使用DataGridView来更新表。请帮忙。

3 个答案:

答案 0 :(得分:1)

主键的唯一目的是区分一行与另一行。而已。你真的应该有一个PK。您甚至不必将其显示给用户。它可以像Row_Id那样通用。 PK的重点是数据库将其用作每行的唯一标识符,因此最好只使用自动递增的整数。

如果您没有主键,那么您至少需要某种独特的约束来区分一行和下一行。否则,您无法可靠地SELECTUPDATE给定行。

答案 1 :(得分:0)

我认真建议您添加Employee_Id主键,因为它很容易使用Id(唯一)进行更新。您无法使用姓名,部门等进行更新。 您可以通过以下方式设置表的主键:

Dim table As New DataTable()
table.Columns.Add(New DataColumn("Employee_Id"))
Dim primaryKey(1) As DataColumn
primaryKey(1) = table.Columns("Employee_Id")
table.PrimaryKey = primaryKey

并使用此Employee_Id

进行更新

答案 2 :(得分:0)

您需要在此处拥有多个表格。一个表只包含员工信息,一个表包含部门信息,一个表包含employeeID,departmentID和加入/退出日期。一张桌子就不够了。

修复数据库结构,然后再担心如何更新数据库结构。