1.关于本文
本文是一个使用VB.NET建立DBF表文件的示例。
今天写了一个VB.NET程序(本来计划用C#写的,打开VS的时候不小心开错环境了,于是就将错就错了~~~)。程序的目的是生成一个DBF文件,文件名为TradingDate.dbf。其中有两列:Id和Jyrq,前者为顺序编号,后者为一年中所有的星期一到星期五的日期,用八位数字表示(如2014年6月20日,写作20140620)。
2.文件代码
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
3.运行结果
命令行结果
生成的DBF文件(使用VFP6.0查看)
END