Я разрабатываю небольшой проект по преобразованию файла .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
Заранее спасибо;)