#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.