Как указать числовую ширину и точность при создании базы данных dBase? - PullRequest
1 голос
/ 13 апреля 2010

Нам нужно создать базу данных dBase (файл .dbf), содержащую числовые столбцы с определенной шириной и точностью. Кажется, я могу установить точность, но не ширину. Следующий код показывает мою строку подключения и текст моей команды.

using (OleDbConnection oConnection = new OleDbConnection(String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source = {0};Extended Properties=dBase 5.0", msPath)))
{

  ....

  oCommand.CommandText = "CREATE TABLE [Field] ([Id] Numeric (15, 3))";
  oCommand.ExecuteNonQuery();
}

Это дает мне столбец Id,20,3 в файле.

Должен быть способ установить ширину поля, не прибегая к редактированию файла .dbf вручную? Никто не сталкивался с этим раньше при создании шейп-файлов?

Ответы [ 2 ]

0 голосов
/ 18 июня 2015

Вы можете использовать Microsoft OLE DB Provider

Используйте следующую связь:

connectionString = @"Provider=vfpoledb.1;Data Source=" + path + ";Collating Sequence=machine;";

и вы запрашиваете:

comm.CommandText = "Create table Test (FirstName Numeric(4,0),LastName Char(50) )"
0 голосов
/ 18 июля 2012

Решения найти не удастся, если кто-нибудь найдет решение, я изменю свой принятый ответ!

...