Oracle或MySQL通过ODBC与C#建立连接和进行事务处理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《ORACLE和MySQL通过ODBC与C#或.NET连接搭建全过程》目录
开篇开发环境简介--------------------------------------------------------------------------------2
第一章MySQL和ODBC的连接------------------------------------------------------------------------3
前提条件
配置过程图解
注意事项
第二章Oracle和ODBC的连接-----------------------------------------------------------------------5
前提条件
配置过程图解
注意事项
第三章数据库(MySql与Oracle)通过ODBC与C#建立联系DbHelper创建与测试--------------------------1 代码目录结构
代码展示
附录一:进行测试过程中所用到的组合---------------------------------------------------------------15
附录二:测试结果汇报-----------------------------------------------------------------------------16
开篇环境简介开发平台:Windows
应用程序平台:Windows
开发工具:VS2010
语言:C#
数据库1:MySQL
数据库2:ORACLE
服务器平台:Windows,Linux等用与安装数据库
第一章MySQL和ODBC的连接
前提一:
1.你的电脑上或服务器上已经安装了mysql,我电脑上安装的是5.5.25a,并且成功运行
假设MYSQL位于127.0.0.1上,端口号3306 用户名:root 密码:空
2.为了进行连接测试,你需要
创建一个数据库db_bank
创建一张表bk_user
包含字段:(id int primary key,name varchar(255), money int)
表简介:银行/用户信息(标识符ID,姓名,金额)
荐1:MySQL管理软件(MySQL-Front 开源),图形化管理界面速度快。
荐2:电脑上安装VS2010旗舰版,因为要开发C#语言程序,下面也会用到。
网络搜索下载
前提二:
1.下载并安装mysql-connector-odbc-5.
2.3-win32.msi
2.下载并安装mdac_typ2.7.exe
3.下载并安装odbc_net.msi
注1:这些程序必须安装到使用者的电脑上,作为安装包的一部分。
注2:已经提供下载地址,注意查毒后再使用,也可自己网上搜索下载。
注3:文件简介
①mysql-connector-odbc-5.2.3-win32.msi
MySQL Connector/ODBC 是MySQL 数据库的官方ODBC 驱动程序。
可以进行事务处理。
提醒:可以针对自己的数据库自行的替换
②mdac_typ2.7.exe
微软数据库访问组件,Netpise和许多利用数据库的软件都需要操作系统安装MDAC。
提醒:不建议安装最新的2.8容易出错。
③odbc_net.msi
微软.NET Framework的一个插件。
通过它可直接访问本地微软开放数据库连接(ODBC)。
配置过程图解:
第一步:打开->控制面板->管理工具
第二步:(如上图)选择数据源(ODBC)->双击打开
第三步:(如上图)选择用户DSN,单击追加按钮。
第四步:(如上图)选择MySQL ODBC DRIVER->单击确定按钮
第五步:(如上图)黄色划线部分为重要项目。
单击测试。
第六步:(如上图)确认。
出现该对话框说明连接成功。
之后就能够在程序中使用了。
第二章Oracle和ODBC的连接
前提一:
1.你的电脑上或服务器上已经安装了Oracle,服务器上安装的是oracle10g,并且成功运行
假设ORACLE位于192.168.0.29上端口号:1521 用户名:dradmin 密码:dradmin
2.为了进行连接测试,你需要
数据库名称为DRDB
创建一张表bk_user
包含字段:(id number primary key,name varchar2(255), money number)
表简介:银行/用户信息(标识符ID,姓名,金额)
荐1:ORACLE管理软件(sqldeveloper),优点自己搜吧
荐2:电脑上安装VS2010旗舰版,因为要开发C#语言程序,下面也会用到。
网络搜索下载
前提二:
1.下载安装Oracle客户端带ODBC的instantclient-odbc-nt-11.
2.0.
3.0.zip
2.下载并安装mdac_typ2.7.exe
3.下载并安装odbc_net.msi
注1:这些程序必须安装到使用者的电脑上,作为安装包的一部分。
注2:已经提供下载地址,注意查毒后再使用,也可自己网上搜索下载。
注3:文件简介
①instantclient-odbc-nt-11.2.0.3.0.zip
Oracle 数据库的官方ODBC 驱动程序。
可以进行事务处理。
②mdac_typ2.7.exe
微软数据库访问组件,Netpise和许多利用数据库的软件都需要操作系统安装MDAC。
提醒:不建议安装最新的2.8容易出错。
③odbc_net.msi
微软.NET Framework的一个插件。
通过它可直接访问本地微软开放数据库连接(ODBC)。
配置过程步骤图解:
第一步:(如上图)打开Oracle客户端的管理程序,进行监听的添加。
第二步:(如上图)点击加号进行服务监听的添加,简单填写一直下一步,会出来右侧的界面,黄色区域重点写。
注:接下来要进行ODBC与ORACLE之间连接的配置
第三步:打开->控制面板->管理工具(如下图)
第四步:(如上图)选择数据源(ODBC)->双击打开
第五步:(如上图)选择用户DSN,单击追加按钮。
第六步:(如上图)选择Oracle in OraClient11g home1单击确定
第七步:(如上图)重点填写黄色区域,其它地方默认。
单击测试按钮。
第八步:(如上图)填写帐号密码,单击OK
第九步:弹出了正常接续成功后就完成了。
下面一章将进行ODBC与C#之间的代码实现。
第三章数据库通过ODBC与C#建立联系DbHelper创建与测试
前提
前面的章节你都测试通过后。
你可以根据ODBC的数据库连接字符串命名规则来定义前面的数据。
MySQL:DSN=ODBC中DSN名
例:Dsn=BANK
Oracle:DSN=ODBC中DSN名; uid=用户名; pwd=密码
例:Dsn=DRDB;uid=dradmin;pwd=dradmin
补充说明:无论是MYSQL还是Oracle,在ODBC中DbHelper中通用。
我创建了一个测试项目,目录结构如下图:
上图中包含了一个Index测试页面,一个DbHelper文件。
DbHelper.cs中内容如下
Index.aspx
Index.aspx.cs
附录一:进行测试过程中所用到的组合
01,针对MySQL的未开启事务的增删改查-正常测试。
02,针对MySQL的未开启事务的增删改查SQL出错无法回滚的-异常测试。
03,针对MySQL的开启事务的增删改查-正常测试。
04,针对MySQL的开启事务的增删改查SQL出错无法回滚的-异常测试。
05,针对Oracle的未开启事务的增删改查-正常测试。
06,针对Oracle的未开启事务的增删改查SQL出错无法回滚的-异常测试。
07,针对Oracle的开启事务的增删改查-正常测试。
08,针对Oracle的开启事务的增删改查SQL出错无法回滚的-异常测试。
附录二:测试结果汇报[[MYSQL_CONNECTION_STRING]]
[[NoTransationTest]]Dsn=BANK
[[Select]]
[1][小三][100]
[2][小四][20000]
[3][小五][300]
[[Delete]]
[[Select]]
[[Insert]]
[[Select]]
[1][小三][100]
[2][小四][200]
[3][小五][300]
[[Update]]
[[Select]]
[1][小三][100]
[2][小四][20000]
[3][小五][300]
[[NoTransationTestError]]Dsn=BANK
[[Select]]
[1][小三][100]
[2][小四][20000]
[3][小五][300]
[[Delete]]
[[Select]]
Error:ERROR [42S22] [MySQL][ODBC 5.2(w) Driver][mysqld-5.5.25a]Unknown column 'X' in 'field list' [[TransationTest]]Dsn=BANK
[[Select]]
[1][小三][100]
[2][小四][200]
[3][小五][300]
[4][小六][100]
[[Delete]]
[[Select]]
[[Insert]]
[[Select]]
[1][小三][100]
[2][小四][200]
[3][小五][300]
[[Update]]
[[Select]]
[1][小三][100]
[2][小四][20000]
[3][小五][300]
[[TransationTestError]]Dsn=BANK
[[Select]]
[1][小三][100]
[2][小四][20000]
[3][小五][300]
[[Delete]]
Error:ERROR [42S22] [MySQL][ODBC 5.2(w) Driver][mysqld-5.5.25a]Unknown column 'X' in 'field list' [[ORACLE_CONNECTION_STRING]]
[[NoTransationTest]]Dsn=DRDB;uid=dradmin;pwd=dradmin
[[Select]]
[1][小三][100]
[2][小四][20000]
[3][小五][300]
[[Delete]]
[[Select]]
[[Insert]]
[[Select]]
[1][小三][100]
[2][小四][200]
[3][小五][300]
[[Update]]
[[Select]]
[1][小三][100]
[2][小四][20000]
[3][小五][300]
[[NoTransationTestError]]Dsn=DRDB;uid=dradmin;pwd=dradmin
[[Select]]
[1][小三][100]
[2][小四][20000]
[3][小五][300]
[[Insert2]]
Error:ERROR [HY000] [Oracle][ODBC][Ora]ORA-06553: PLS-306: 'OGC_X'の呼出しで、引数の数または型が正しくありません。
[[TransationTest]]Dsn=DRDB;uid=dradmin;pwd=dradmin
[[Select]]
[3][小五][300]
[4][小六][100]
[1][小三][100]
[2][小四][200]
[[Delete]]
[[Select]]
[[Insert]]
[[Select]]
[1][小三][100]
[2][小四][200]
[3][小五][300]
[[Update]]
[[Select]]
[1][小三][100]
[2][小四][20000]
[3][小五][300]
[[TransationTestError]]Dsn=DRDB;uid=dradmin;pwd=dradmin
[[Select]]
[1][小三][100]
[[Delete]]
[[Select]]
[[Insert]]
[[Insert2]]
Error:ERROR [HY000] [Oracle][ODBC][Ora]ORA-06553: PLS-306: 'OGC_X'の呼出しで、引数の数または型が正しくありません。