Доступ к использованию первичного ключа / роль

Мой вопрос связан с подключением проекта VB.net к базе данных Access. Должен ли я иметь первичный ключ в своей таблице, или есть ли способ изменить мой код, чтобы не искать PK?

У меня появляется ошибка, сообщающая, что у меня нет первичного ключа. Теперь, если я сделаю «AdminID» моим первичным ключом, система работает. Я просто задавался вопросом, требуется ли это или нет?

В настоящее время мой комбинированный список отображает «AdminID», где, как я бы предпочел, отображать «AdminName»

Благодарю.

Dim objConnection As New   OleDb.OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source= InfoSystem.accdb")
Dim objAdminDA As New OleDb.OleDbDataAdapter("Select *from tblAdmins", objConnection)
Dim objAdminCB As New OleDb.OleDbCommandBuilder(objAdminDA)
Dim objDataSet As New DataSet()

Public Sub Retrieve()

    'Clears DataSet of any existing data
    objDataSet.Clear()
    'Fills schema - adds table structure information to DataSet
    objAdminDA.FillSchema(objDataSet, SchemaType.Source, "tblAdmins")
    'Fills DataSet with info from the DataAdapter
    objAdminDA.Fill(objDataSet, "tblAdmins")

    'Fill the DataSet with info from the Admin table
    objAdminDA.FillSchema(objDataSet, SchemaType.Source, "tblAdmins")
    objAdminDA.Fill(objDataSet, "tblAdmins")

    'Empty combo box
    cboxAdmin.Items.Clear()

    'Loop through each row, adding the AdminName to the combo box
    Dim i As Integer, strAdminID As String
    For i = 1 To objDataSet.Tables("tblAdmins").Rows.Count
        strAdminID = objDataSet.Tables("tblAdmins").Rows(i - 1).Item("AdminID")
        cboxAdmin.Items.Add(strAdminID)
    Next
    'Select first item in the list
    cboxAdmin.SelectedIndex = 0

    FillAdminDetails()

End Sub

Public Sub FillAdminDetails()
    Dim objRow As DataRow
    objRow = objDataSet.Tables("tblAdmins").Rows.Find(cboxAdmin.SelectedItem.ToString)
    txtStaffDept.Text = objRow.Item("Department")
    txtStaffTitle.Text = objRow.Item("Title")
End Sub

Private Sub cboxAdmin_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cboxAdmin.SelectedIndexChanged
    FillAdminDetails()
End Sub

End Sub

Ответы на вопрос(1)

Ваш ответ на вопрос