Как создать первичный ключ в таблице DBF?

#c# #oledb #dbf

#c# #oledb #dbf

Вопрос:

Я использую драйвер OLEDB (поставщик = Microsoft.Jet.OLEDB.4.0; Источник данных = {0}; Расширенные свойства = dBase IV) для работы с таблицей DBF. Я сталкиваюсь с проблемой при попытке создать первичный ключ в существующем столбце. Я прошел через несколько вариантов синтаксиса, но безуспешно.

Каков правильный синтаксис для создания первичного ключа с использованием OLEDB в таблице DBF?

Ответ №1:

Попробуйте это:

 using (OleDbConnection cn = new OleDbConnection("Provider=Microsoft.Jet..."))
using (OleDbCommand cmd = new OleDbCommand("ALTER TABLE MyTable ADD CONSTRAINT idxMyTable PRIMARY KEY (MyColumn)", cn))
{
  cn.Open();
  cmd.ExecuteNonQuery();
}
  

Конечно, вы должны убедиться, что индекс еще не существует, а значения в столбце в настоящее время не нарушают предлагаемый первичный ключ и т.д.

Комментарии:

1. Этот синтаксис работает с пустыми таблицами MS Access (.mdf), но не с таблицами, в которых уже есть одна или несколько записей. Обратите внимание, что PRIMARY KEY ограничению должно быть присвоено имя с использованием OleDB.