Запись слишком длинный файл dbf - PullRequest
0 голосов
/ 07 августа 2020

Я разрабатываю небольшой проект по преобразованию файла .CSV в файл .DBF.

Он отлично работает, однако, когда я превысил 40 столбцов в моей таблице, я получаю эту ошибку:

Слишком длинная запись

После долгих исследований я увидел, что .DBF файлы имеют ограничения, однако ограничение столбца - 256. Так что мой запрос должен работать нормально.

Вот мой код:

int i2 = 0;
string createSql = "create table " + fileName + " (";

foreach (DataColumn dc in dataSet.Tables[0].Columns)
{
    string fieldName = dc.ColumnName;

    string type = dc.DataType.ToString();

    createSql = createSql + "[" + fieldName + "]" + " varchar(100),";
    i2++;

    list.Add(fieldName);
}

Console.WriteLine("NB COL : " + i2);
createSql = createSql.Substring(0, createSql.Length - 1) + ")";

OleDbConnection con = new OleDbConnection(GetConnection(path));

OleDbCommand cmd = new OleDbCommand();
cmd.Connection = con;

con.Open();

cmd.CommandText = createSql;
cmd.ExecuteNonQuery();

Вот мой код (Connection Oledb):

private static string GetConnection(string path)
{
    return "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + ";Extended Properties=dBASE IV;";
}

Вот мой запрос (Create Table):

create table CSF 
(
     [NUMBER] varchar(100),
     [TYPE] varchar(100),
     [NAME1] varchar(100),
     [NAME2] varchar(100),
     [CIVNAME1] varchar(100),
     [CIVNAME2] varchar(100),
     [ADRESS1] varchar(100),
     [ADRESS2] varchar(100),
     [VATCAT] varchar(100),
     [COUNTRY] varchar(100),
     [VATNUMBER] varchar(100),
     [PAYCODE] varchar(100),
     [TELLNUMBER] varchar(100),
     [FAXNUMBER] varchar(100),
     [BNKACCNT] varchar(100),
     [ZIPCODE] varchar(100),
     [CITY] varchar(100),
     [DEFLTPOST] varchar(100),
     [LANG] varchar(100),
     [CATEGORY] varchar(100),
     [CENTRAL] varchar(100),
     [VATCODE] varchar(100),
     [CURRENCY] varchar(100),
     [LASTREMLEV] varchar(100),
     [LASTREMDAT] varchar(100),
     [TOTDEB1] varchar(100),
     [TOTCRE1] varchar(100),
     [TOTDEBTMP1] varchar(100),
     [TOTCRETMP1] varchar(100),
     [TOTDEB2] varchar(100),
     [TOTCRE2] varchar(100),
     [TOTDEBTMP2] varchar(100),
     [TOTCRETMP2] varchar(100),
     [ISLOCKED] varchar(100),
     [MEMOTYPE] varchar(100),
     [ISDOC] varchar(100),
     [F28150] varchar(100),
     [WBMODIFIED] varchar(100),
     [IBANAUTO] varchar(100),
     [BICAUTO] varchar(100),
     [EREMINDERS] varchar(100),
     [EMAIL] varchar(100)
)

Я нашел их на inte rnet: limit dbf , но когда я смотрю, я не go превышаю лимит: /

У меня ровно 315 символов со всеми столбцами Если у вас есть идеи, это мне поможет: D

Заранее спасибо;)

...