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

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

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


person AJPennyPacker    schedule 15.04.2011    source источник


Ответы (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();
}

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

person LarsTech    schedule 14.07.2011
comment
Этот синтаксис работает с пустыми таблицами MS Access (.mdf), но не с таблицами, в которых уже есть одна или несколько записей. Обратите внимание, что ограничению PRIMARY KEY должно быть присвоено имя с использованием OleDB. - person AlainD; 02.06.2021