我使用c#和oledb创建DBF文件,文件是正确的,并且完全填充,完全没问题。我只是一个非常小的问题,就是当我打开那些dbf文件时,所有int值最后都包含零,所以我找到'1.0000'而不是'1'。有没有办法擦除那些零?
这是创建和填充表格的代码:
using (OleDbCommand cmd = connection.CreateCommand())
{
/* Creation Des Tables DBF */
//Create ptemp_param
cmd.CommandText = @"CREATE TABLE test1( code int ,
type varchar(50),
nr int ,
name varchar(50) ,
date1 date)";
cmd.ExecuteNonQuery();
int day, month, year, dow, endmonth;
DateTime date1;
//Filling & Sending Param & Deleting it
foreach (string line in lines)
{
string[] split = line.Split('|');
cmd.CommandText = @"insert into test1 values (" + split[0] + ",'" + split[1] + "'," + split[2] + ",'" + split[3] + "','" + split[4] + "')";
cmd.ExecuteNonQuery();
}
答案 0 :(得分:0)
尝试按如下方式创建表格:
cmd.CommandText = @"CREATE TABLE test1( code int ,
type varchar(50),
nr int(10),
name varchar(50) ,
date1 date)";
请注意nr
定义的更改。相应地设置值,因为它限制了您可以插入的数量。
经过一些谷歌搜索后,我发现.DBF文件属于dBase,它的语法略有不同(见下文)。
cmd.CommandText = @"CREATE TABLE test1( code int ,
type varchar(50),
nr numeric(10,0),
name varchar(50) ,
date1 date)";
答案 1 :(得分:0)
使用.DBF文件。你在使用Foxpro表吗?如果是这样,我建议使用Microsoft的Visual Foxpro OleDB提供程序而不是Jet。它可能更好地支持适当的“int”值。