C#创建DBF自由库 [转]
先看段代码:
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 二进制字符型和二进制备注型
这两类数据是以二进制格式存储的数据类型,只能用在表中字段数据的定义。所存储的数据不受代码页改变的影响。
数据类型的应用范围
以上数据类型均可应用于表中字段数据类型的定义,但其中双精度型、浮点型、通用型、整型、备注型、二进制字符型和二进制备注型只能应用于字段,其余则可以用于变量、数组和字段。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/whchen/archive/2008/12/15/3520324.aspx
C#创建DBF自由库 [转]的更多相关文章
- soliworks三维机柜布局(一)创建设备型号库
以某直升机电气系统为例:为电路中的各个设备创建设备型号库是进行三维线束设计的前提之一(如下图所示:窗口中箭头所指的3D部件一定要为每个设备都添加) 设备只有添加了3d模型,在solidworks进行机 ...
- [Oracle] Data Guard 系列(5) - 创建逻辑备库
在创建逻辑备库之前,必须得先创建物理备库,关于如何创建物理备库,请参考<Data Guard 系列(4) - 在不停主库的情况下创建物理备库>. 1. 在物理备库上停止日志应用服务 SYS ...
- 创建Git版本库
什么是版本库呢?版本库又名仓库,英文名repository,你可以简单理解成一个目录,这个目录里面的所有文件都可以被Git管理起来,每个文件的修改.删除,Git都能跟踪,以便任何时刻都可以追踪历史,或 ...
- cocoapods 创建公开公共库
1 :首先安装了 pod,sourceTree(下载地址https://pan.baidu.com/s/1c1Wc5ck), 并在开元中国申请的 git 账号 2 :打开终端: cd 文件目录地址(任 ...
- iOS 在工程内部创建一个静态库target
当你在开发项目的时候需要把公用的东西打包出来,其他项目方便使用的时候,打包成静态库是你的最优选择,在工程内部开发的时候新建一个target进行静态库的开发可以使你的开发调试更加方便而不是单独新建一个工 ...
- SharePoint Online 创建文档库
前言 本文介绍如何在Office 365中创建文档库,以及文档库的一些基本设置. 正文 通过登录地址登录到Office 365的SharePoint Online站点中,我们可以在右上角的设置菜单中, ...
- 跟我学SharePoint 2013视频培训课程——怎样创建文档库并上传文档(8)
课程简介 第8天,怎样在SharePoint 2013怎样创建文档库并上传文档. 视频 SharePoint 2013 交流群 41032413
- iOS 创建本地私有库 保存功能代码
创建本地私有库 >>> cd /Users/cxx/Desktop/Mange_JJH/Lib >>> pod lib create TZTools >> ...
- 使用Percona Xtrabackup创建MySQL slave库
一.使用Percona Xtrabackup创建MySQL slave库 MySQL Server 版本: Server version: 5.7.10-log MySQL Community Ser ...
随机推荐
- Logback日志系统配置攻略
logback是log4j作者推出的新日志系统,原生支持slf4j通用日志api,允许平滑切换日志系统,并且对简化应用部署中日志处理的工作做了有益的封装. 官方地址为:http://logback.q ...
- 网页引用google字体速度慢:fonts.googleapis.com
由于众所周知的原因,国内使用google font库有很大的问题. 使用国内镜像如360网站卫士常用前端公共库CDN服务 http://libs.useso.com/ 优点:使用方便 缺点:目标用户包 ...
- 原生js tab 栏切换
<div id="box"> <div> <button>按钮1</button> <button>按钮2</bu ...
- 使用Quartz.net动态设置定时时间问题
关于使用Quartz.net就不用解释了.. 应客户需求问题..需要将做一个界面设置定时的时间.因此我在百度一番..用CronExpression类可以设置时间... 我知道这个类有定义好的字段..不 ...
- urlencode
urlencode()函数原理就是首先把中文字符转换为十六进制,然后在每个字符前面加一个标识符%.urldecode()函数与urlencode()函数原理相反,用于解码已编码的 URL 字符串,其原 ...
- 【Gerrit】Gerrit cmd query (gerrit命令行查询change信息)
本文仅展现个人使用情况和理解,英文原址:https://review.openstack.org/Documentation/cmd-query.html 基本使用格式: ssh -p <por ...
- 11.12模拟考T1(可持续优化)PS:神奇的东西
1.数列操作 (array.pas/c/cpp) [问题描述] 现在有一个数列,最初包含0个数.现在要对数列操作n次,操作有3类. 1) a k,在数列的最后插入一个整数k 2) s 将最近插入的 ...
- SSH开源框架的优缺点
js+servlet+javabean的开发模式需要写很多的重复代码,比如固定的doGet()方法,而且它的控制跳转不灵活,往往一个问题处理需要两个.java文件,而且当采用MVC模式开发时有很大的耦 ...
- Servlet页面注册用户的小程序(一)
本实例实现用userreg.jsp页面中的表单提交注册请求,把注册信息提交给regservlet写入数据库并且查询新用户显示出来. 一.准备工作. 1.jdbc数据驱动开发包mysql-connect ...
- pyside 为窗口添加图片
有时我们需要添加一些图片到窗口上,下面给一个通过QLable实现的方法. 这里需要注意的是,当你启用多线程时,方法调用的setPixmap,会导致qt报出一个线程安全错误. 因此,让这个绘图工作尽量在 ...