simple data 安装和使用记录
simple.data是一个轻量级的、动态的数据访问组件,支持.net4.0。
simple.data支持以下数据库:
SQL Server 2005 and later
SQL Server Compact Edition 4.0
oracle
vistadb
mysql 4.0 and later
sqlite 3.0 and later
PostgreSQL
sqlanywhere
informix
Microsoft Access 2000, 2003, and 2007
本文记录了使用simple.data连接oracle数据库的过程和遇到的问题,经过一些简单的测试,总结了一些simple.data的优缺点。欢迎各位大神评论指教!
1、开发环境
操作系统:Windows7专业版 64位
开发工具:Microsoft Visual Studio 2012 32位
数据库:oracle 11g
2、添加simple.data组件
1)创建项目:首先创建一个控制台应用程序项目,命名为SimpleDateOracleTest,框架只要是.net4.0以上框架就行。
2)添加Oracle数据库的Simple.Data组件:在这个项目上点右键,选择‘管理NuGet程序包’,在弹出的对话框中,搜索Simple.Data.Oracle关键字,然后在搜索结果列表中选择Simple.Data.Oracle,单击‘安装’按钮,安装完成后,Simple.Data.Oracle的程序集就被引用到项目中了;如下图,其中simple.data.oracle依赖于simple.data.ado,simple.data.ado依赖于simple.data。
如果你对Simple.Data很感兴趣也可以下载源码进行研究:
Simple.Data.Oracle下载地址:https://github.com/flq/Simple.Data.Oracle
Simple.Data下载地址:https://github.com/markrendle/Simple.Data
3)添加Oracle数据库的ADO Provider:在项目中引用Oracle.DataAccess.dll文件,也可以应版本的ODAC,需注意Oracle.DataAccess.dll的版本要和你访问的数据库的版本一致。可以在Oracle数据库所在计算机的OracleHome\odp.net\bin\4\中找到对应版本的Oracle.DataAccess.dll,也可以到Oracle官网上下载对应版本的ODAC进行安装,下载地址:http://www.oracle.com/technetwork/database/windows/downloads/index.html
引用结果如下图:
3、测试
1)编写简单的例子测试是否能够成功连接数据库:代码如下
变量connStr为连接字符串名称;"Oracle.DataAccess.Client"为Oracle数据库的ADO Provider名称;运行程序,结果如下图所示:
2)测试是否能够成功进行数据操作:添加数据库实体类,用来保存数据库查询出来的数据
修改第一步的代码如下
运行程序结果如下图,由图中结果可知,插入数据返回结果为插入的记录内容,修改数据和删除数据返回受影响记录行数。
3)执行速度测试:分别使用SimpleDateOracle,OracleConnection,EF连接同一数据库(这里主要讲SimpleDateOracle,所以使用OracleConnection,EF测试的代码就不提供了),对科室表进行查询(根据主键获取一条数据)和综合(插入一条记录,查询i条记录,删除查询出来的数据)测试,测试结果如下图
4、遇到的问题
1)数据库连接时出现错误:未能加载文件或程序集“Oracle.DataAccess, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。
原因:本机没有安装4.112.2.0版本的Oracle.DataAccess,或项目中引用的Oracle.DataAccess.dll不是4.112.2.0版本。
解决方法:方法一:到Oracle官网上下载对应版本的ODAC进行安装,下载地址:http://www.oracle.com/technetwork/database/windows/downloads/index.html
本例需找到ODAC112021Xcopy_x64.zip进行安装。安装后可进入vs.net命名行窗口,输入gacutil.exe /l Oracle.DataAccess,查看本机GAC中所有Oracle.DataAccess程序集,确保本机有安装对应版本的Oracle.DataAccess。如下图
方法二:将Oracle数据库所在计算机OracleHome\odp.net\bin\4\Oracle.DataAccess.dll拷贝到项目中,添加引用。
2)数据库连接时出现错误:发生一个或多个错误;内部错误:ORA-12154: TNS:could not resolve the connect identifier specified
原因:数据库连接字符串错误。
解决方法:检查数据库连接字符串是否正确。
3)在服务器上的运行数据查询时出现错误:关于未能加载文件或程序集“Oracle.DataAccess, Version=4.112.2.0, Culture=neutral, PublicKeyToken=89b483f429c47342”或它的某一个依赖项。试图加载格式不正确的程序的解决方案
原因:32位/64位版本问题
解决方法:设置项目生成目标平台为Any CPU如图:
4)查询数据时出现错误:Table ‘MAPP1.cw_khxx‘ not found, or insufficient permissions.
原因:所访问的表不是该用户的表,在SimpleDateOracle源码中可以看到其底层获取用户表的语句如下
select object_name, object_type
from user_objects
where object_type in (‘VIEW‘,‘TABLE‘)
所以,在PLSql中执行该语句,找不到的表是不能进行操作的。
5、优缺点
1)优点:超轻量级,支持多种数据库,代码编写简单方便
2)缺点:无法进行多用户表操作,需要对数据库表结构比较了解
6、参考链接
学习simple.data之基础篇:
http://www.cnblogs.com/hj4444/p/3974046.html
oracle odp.net 32位/64位版本的问题:http://www.cnblogs.com/yjmyzz/archive/2011/04/19/2020793.html
http://www.xuebuyuan.com/167621.html
ODAC 64位下载地址:
http://www.oracle.com/technetwork/database/windows/downloads/index-090165.html
Simple.Data.Oracle源码下载地址:https://github.com/flq/Simple.Data.Oracle
Simple.Data源码下载地址:https://github.com/markrendle/Simple.Data