最近做手持终端的开发,遇到了较早的数据库版本DBase3。对于用惯了SQL SERVER和ORACLE的我来说,头大了一段时间。现在和大家分享下经验。
在.net环境下开发,首先要安装odbc_net.msi,然后在References中添加Microsoft.Data.Odbc,这样才能正常操作该数据库。
操作时具体代码如下:
using Microsoft.Data.Odbc;
using System.Data;
//连接字符串,引用foxpro驱动,dBase III目录为C盘
string connString = @"Driver={Microsoft dBase Driver (*.dbf)};collatingsequence=ASCII;dbq=C:/;deleted=0;driverid=21;fil=dBase III;maxbuffersize=2048;maxscanrows=8;pagetimeout=5;safetransactions=0;statistics=0;threads=3;usercommitsync=Yes";
OdbcConnection conn = new OdbcConnection(connString);
OdbcCommand myCommand = new OdbcCommand();
conn.Open();
//删除数据文件
string cmd = "drop table GATHER";
myCommand.CommandText = cmd;
myCommand.Connection = conn;
myCommand.ExecuteNonQuery();
//新建数据文件
string cmd1 = "create table GATHER(LOTNO char(15),ISOK char(1),MEG char(2))";
myCommand.CommandText = cmd1;
myCommand.Connection = conn;
myCommand.ExecuteNonQuery();
//读取
OdbcDataAdapter DataAdapter = new OdbcDataAdapter("select * from GATHER", conn);
DataSet dsDataSet1 = new DataSet();
DataAdapter.Fill(dsDataSet1, "GATHER");
DataTable datatable = dsDataSet1.Tables[0];
//写入
string sql = "insert into GATHER(LOTNO ,ISOK ,MEG) values('001','Y','003')";
myCommand.CommandText = sql;
myCommand.Connection = conn;
myCommand.ExecuteNonQuery();