2013-12-10 4 views
0

Я построил данные с сотрудниками, их отделами, дату вступления и дату выхода в отдел. У каждого сотрудника может быть более одного отдела. Следовательно, я не могу иметь первичный ключ. Итак, как мне написать запрос Update для этого. Я использую DataGridView для обновления таблицы. Пожалуйста помоги.Обновление данных MS-Access без первичного ключа в vb.net

+1

Почему это означает «Следовательно, у меня не может быть первичный ключ»? –

ответ

0

Я серьезно советую вам добавить первичный ключ Employee_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

+0

Проблема заключается в том, что один сотрудник может находиться в нескольких отделах, в этой конкретной таблице даже идентификатор employee_ID не будет уникальным. – user1747428

+0

Если это так, используйте две таблицы с 'foreign key' и' primary key' –

1

Единственная цель первичного ключа состоит в том, чтобы отличать одну строку от другой. Вот и все. И вы ДЕЙСТВИТЕЛЬНО должны иметь ПК. Вам даже не нужно отображать его пользователю. Это может быть нечто общее, как Row_Id. Точка PK заключается в том, что база данных использует ее как уникальный идентификатор для каждой строки, поэтому, вероятно, лучше всего использовать автоматическое инкрементное целое число.

Если у вас нет Первичного ключа, вам, по крайней мере, потребуется какое-то уникальное ограничение (-ы), чтобы отличить одну строку от следующей. В противном случае вы не можете надежно присвоить SELECT или UPDATE данной строке.

0

Здесь необходимо иметь несколько таблиц. Одна таблица с информацией только о сотруднике, одна таблица с информацией отдела и одна таблица с идентификатором employeeID, идентификатором отдела и датой соединения/выхода. Здесь не хватает одной таблицы.

Исправить структуру базы данных, прежде чем беспокоиться о том, как ее обновить.

Смежные вопросы