c#连接paradox数据库并导出db文件
前段时间接到一个需求,是用C#导出数据表为.DB的文件,并且支持paradox数据库打开,可谓是费尽周折,历尽苦难,因为这东西太老了,资料也很少,最终,在我和朋友的努力下,总算出个版本。
检查ODBC数据源有没有驱动
没有的话装个bde,网上一搜一大堆,就不赘述
写代码
string conODBC = @"Driver={Microsoft Paradox Driver (*.db )};defaultdir=G:\TESTF;fil=Paradox 5.X;maxbuffersize=2048;pagetimeout=5";
System.Data.Odbc.OdbcConnection odbcCon = new System.Data.Odbc.OdbcConnection(conODBC);
odbcCon.Open();
这里要注意的是,ODBC驱动只有32位的paradox驱动,所以你的项目一定要是X86的,由于我们的系统是64位的,这样连接会报错,思来想去,想到一个折中的方法,新建一个解决方案X86的项目,生成.exe程序,然后在现有系统里用Process.Start(XXXX.exe")调用这个程序,这个程序就是用来生成.DB文件的。
生成DB文件的程序
生成DB文件的程序也吃了不少苦头,第一个,建表问题,就普通建表语句,建好表之后,往里面插数据,插入第一条可以,第二条时候就报错,要一个可更新的查询,网上搜说是因为什么权限问题,其实是表没建索引,于是再建表时候添加索引,语句为,具体可参考https://docs.microsoft.com/zh-cn/sql/odbc/microsoft/create-index-for-paradox?view=aps-pdw-2016
CREATE [UNIQUE]*索引***索引名称
ON table name
( 列标识符[ASC]
[, 列标识符[ASC] ...])
这里大家要注意的是,建表时候的字段大小要严格把控,不要太大,不然也会报错。建好索引后,会出现一个和表名相同的.PX文件,有这个文件,才可以对数据表进行修改。
然后就可以尽情的插数据了,插完关库就完事了,白白