@H_403_2@1.关于本文
本文是一个使用VB.NET建立DBF表文件的示例。
今天写了一个VB.NET程序(本来计划用C#写的,打开VS的时候不小心开错环境了,于是就将错就错了~~~)。程序的目的是生成一个DBF文件,文件名为TradingDate.dbf。其中有两列:Id和Jyrq,前者为顺序编号,后者为一年中所有的星期一到星期五的日期,用八位数字表示(如2014年6月20日,写作20140620)。
Imports System.Data.OleDb Module Module1 Sub Main() Dim sConn As String = "Provider=Microsoft.Jet.OLEDB.4.0; " + _ "Data Source=" + System.IO.Directory.GetCurrentDirectory + "; " + _ "Extended Properties=dBASE IV;" Dim conn As OleDbConnection = New OleDbConnection(sConn) Try conn.Open() Dim cmd As OleDbCommand '如果已存在 TRADING_DATE.dbf 则直接删除 If System.IO.File.Exists("TradingDate.dbf") Then Console.WriteLine("已存在文件TradingDate.dbf,删除处理") System.IO.File.Delete("TradingDate.dbf") End If '创建新表 TRADING_DATE.dbf cmd = New OleDbCommand( "CREATE TABLE TradingDate.dbf (Id int,Jyrq char(10))",conn) cmd.ExecuteNonQuery() Dim counter As Integer = 0 Dim dt As DateTime = New DateTime(DateTime.Now.Year,1,1) Do '只向数据表中添加工作日信息 If dt.DayOfWeek <> System.DayOfWeek.Saturday And dt.DayOfWeek <> System.DayOfWeek.Sunday Then cmd = New OleDbCommand( "INSERT INTO TradingDate.dbf (Id,Jyrq) VALUES (" + _ counter.ToString() + "," + _ (dt.Year * 10000 + dt.Month * 100 + dt.Day).ToString() + ")",conn) cmd.ExecuteNonQuery() counter += 1 Console.Write("条目: ") Console.Write((dt.Year * 10000 + dt.Month * 100 + dt.Day).ToString()) Console.WriteLine(" 添加成功") End If dt = dt.AddDays(1) Loop Until dt.Year <> DateTime.Now.Year Catch ex As Exception Console.WriteLine(ex.Message) Finally conn.Close() End Try Console.WriteLine("程序执行完毕!") Console.ReadLine() End Sub End Module
@H_403_2@3.运行结果
命令行结果
@H_403_2@END