DBF编号格式化C#

时间:2013-05-06 09:56:05

标签: c# oledb dbf

我使用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();
            }

2 个答案:

答案 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”值。