先看段代码:
string ole_connstring = @"Provider=VFPOLEDB.1;Data Source=D:\;";
System.Data.OleDb.OleDbConnection ole_conn = new System.Data.OleDb.OleDbConnection(ole_connstring);
try
{
ole_conn.Open();
System.Data.OleDb.OleDbCommand cmd1 = new System.Data.OleDb.OleDbCommand
("Create Table TestTable (Field1 int, Field2 char(10),Field float(10,2))",
ole_conn);
System.Data.OleDb.OleDbCommand cmd2 = new System.Data.OleDb.OleDbCommand
("Insert Into TestTable values (1,'Hello3',520.20)", ole_conn);
System.Data.OleDb.OleDbCommand cmd3 = new System.Data.OleDb.OleDbCommand
("Insert Into TestTable values (2,'Hello4',18076.60)", ole_conn);
cmd1.ExecuteNonQuery();
cmd2.ExecuteNonQuery();
cmd3.ExecuteNonQuery();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
ole_conn.Close();
}
C#通过OLE DB访问Foxpro数据库,需要Foxpro的OLE DB驱动的支持,需要Foxpro的运行库中的vfpoledb.dll文件。
需要说明的是,创建的DBF文件不需要说明文件的名称,DBF文件的名称就是所创建的第一个表的名称。
Foxpro的数据类型:
1 字符型
字符型(Character)数据是不具计算能力的文字数据类型,用字母C表示。字符型数据包括中文字符、英文字符、数字字符和其他ASCII字符,其长度(即字符个数)范围是0~254个字符。
2 数值型
数值型数据是表示数量、可以进行数值运算的数据类型。数值型数据由数字、小数点、正负号和表示乘幂的字母E组成,数值精度达16位。在Visual FoxPro系统中,按存储、表示形式与取值范围不同,数值型数据又分为四种不同类型。
①.数值型
数值型(Numeric)数据由数字、小数点、正负号和字母E组成,用字母N表示。数值型数据的取值范围是: -0.9999999999E+19~0.9999999999E+20,包括正负号、小数点和字母E在内,其长度(数据位数)最大20位。通常用于表示实数。如23,-103.45,1.3E-5(即1.3×10-5)等;
②.浮点型
浮点型(Float)数据是数值型数据的一种,用字母F表示。它与数值型数据完全等价,只是在存储形式上采用浮点格式,主要是为了得到较高的计算精度。
③.双精度型
双精度型(Double)数据是具有更高精度的一种数值型数据,用字母B表示。它采用固定长度浮点格式存储,占用8个字节,其取值范围是:+/-4.94065645841247E-324 ~ +/-8.9884656743115E307。
④.整型
整型(Integer)数据是不包含小数部分的数值型数据,用字母I表示。整型数据只用来表示整数,以二进制形式存储,占用4个字节。其取值范围是:-21474836~21474836。
3 日期型
日期型(Date)数据是表示日期的数据,用字母D表示。日期的默认格式是{mm/dd/yyyy},其中mm表示月份,dd表示日期,yyyy表示年度,固定长度8位。如{09/16/2002}表示2002年9月16日这一日期数据。
4 日期时间型
日期时间型(Date Times)数据是表示日期和时间的数据,用字母T表示。日期时间的默认格式是{mm/dd/yyyy hh:mm:ss},其中mm、dd、yyyy的意义与日期型相同,而hh表示小时,mm表示分钟,ss表示秒数。日期时间型数据也是采用固定长度8位,取值范围是:日期为01/01/0001~12/31/9999,时间为00:00:00~23:59:59。如{10/01/2002 10:30:30}表示2002年10月1日10时30分30秒这一日期时间数据。
5 逻辑型
逻辑型(Logic)数据是描述客观事物真假的数据类型,表示逻辑判断的结果,用字母L表示。逻辑型数据只有真(.t.或.y.)和假(.f.或.n.)两种,固定长度1位。为区别其他数据类型,一般需在表示逻辑值的字母t、y、f、n的前后加圆点符"."。
6 备注型
备注型(Memo)数据是表示、存放较多字符的数据类型。可以把它看成是字符型数据的特殊形式,用字母M表示。
备注型数据没有数据长度限制,仅受限于磁盘空间。它只用于表中字段类型的定义,字段长度固定为10位,实际数据存放在与表文件同名的备注文件(.FPT)中,长度根据数据的内容而定。
7 通用型
通用型(General)数据是存储OLE(对象链接嵌入)对象的数据类型,用字母G表示。通用型数据中的OLE对象可以是电子表格、文档、图形图片等。它只用于表中字段类型的定义。通用型数据字段长度固定为4位,实际数据长度仅受限于磁盘空间。
OLE对象的实际内容、类型和数据量则取决于链接或嵌入OLE对象的操作方式。如果采用链接OLE对象的方式,则表中只包含对OLE对象的引用说明,以及对创建该OLE对象的应用程序的引用说明;如果采用嵌入OLE对象方式,则表中除包含对创建该OLE对象的应用程序的引用说明,还包含OLE对象中的实际数据。
8 货币型
货币型(Currency)数据是为存储美元金额而使用的一种称为货币(Currency)的数据类型,其取值范围是:-922337203685477.5808 ~ 922337203685477.5807,默认保留4位小数(多则四舍五入),占据8字节存储空间。货币型数据用字母Y表示。
9 二进制字符型和二进制备注型
这两类数据是以二进制格式存储的数据类型,只能用在表中字段数据的定义。所存储的数据不受代码页改变的影响。
数据类型的应用范围
以上数据类型均可应用于表中字段数据类型的定义,但其中双精度型、浮点型、通用型、整型、备注型、二进制字符型和二进制备注型只能应用于字段,其余则可以用于变量、数组和字段。