ADO.NET(二) oracle数据库链接、和Oracle.DataAccess.dll 有关异常的各种问题
2013-11-22 23:11
621 查看
今天本来看数据库链接,做个简单demo.可是最后遇到各种问题。搞了4个小时,终于勉强搞定。
一、Connection对象
创建Connection对象时需要提供链接字符串,链接字符串是用分号隔开的一系列名称/值对的选项,这些选项部分顺序 也不区分大小写 如:
OLE DB的链接字符串 (链接oracle)
string strConn ="Provider=msdaora;Data
Source=MyOracleDB;User
Id=myUsername;Password=myPassword;";
Oracle
string constr = "DATA SOURCE=MyDb;PERSIST SECURITY INFO=True;USER ID=admin;PASSWORD=admin";
SQL Server一般会这么写
string conStr = "DATA SOURCE=localhost;Initial Catalog=MyDb;USER
ID=admin;PASSWORD=admin";
DATA SOURCE指定所在服务器 Initial
Catalog数据库名称 然后就是用户名密码
不过我们一般都会在web.config中配置<connectionStrings>来获取链接字符串,下面就以oracle位例
我们一般操作数据库这些比较消耗资源的类一定要记得关闭资源这里介绍两种常用的方法
eg1:使用try...catch..finally
在finally中关闭资源 在这里需要引入Oracle.DataAccess.dll
我们这里有可能碰到加载Oracle.DataAccess.dll失败等一系列与Oracle.DataAccess.dll有关的异常
在配置iis服务的时候也会碰到这些异常其实异常归根结底还是Oracle.DataAccess.dll版本问题
有可能你装了64位的服务器,却装了32位的客户端导致,首先确保你的服务器你和的客户端的版本是一样的 然后确保你程序的bin文件夹下的
Oracle.DataAccess.dll的版本和你ODP.NET地下bin下的Oracle.DataAccess.dll的版本一样。
还有就是你有可能装的是64位的Oracle.DataAccess.dll,而vs默认服务器32位的,反正我现在还不知道怎么更改默认的启动服务器为64位
不过还有一个解决方法就是可以更改启动方式为iis启动,在项目--属性--服务器--本地iis。这里我大概说下思路具体操作可以问百度。
一、Connection对象
创建Connection对象时需要提供链接字符串,链接字符串是用分号隔开的一系列名称/值对的选项,这些选项部分顺序 也不区分大小写 如:
OLE DB的链接字符串 (链接oracle)
string strConn ="Provider=msdaora;Data
Source=MyOracleDB;User
Id=myUsername;Password=myPassword;";
Oracle
string constr = "DATA SOURCE=MyDb;PERSIST SECURITY INFO=True;USER ID=admin;PASSWORD=admin";
SQL Server一般会这么写
string conStr = "DATA SOURCE=localhost;Initial Catalog=MyDb;USER
ID=admin;PASSWORD=admin";
DATA SOURCE指定所在服务器 Initial
Catalog数据库名称 然后就是用户名密码
不过我们一般都会在web.config中配置<connectionStrings>来获取链接字符串,下面就以oracle位例
<connectionStrings> <add name="strConn" connectionString="DATA SOURCE=orcl;PERSIST SECURITY INFO=True;USER ID=sa;PASSWORD=sa"/> <add name="Test" connectionString="DATA SOURCE=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=这里指定服务器ip)(PORT=端口号默认1521))(CONNECT_DATA=(SID=数据库实例名ORCL)));USER ID=用户名;PASSWORD=密码;" providerName="System.Data.OracleClient"/> </connectionStrings>第一个是简单本地数据库,第二个是链接远端db
我们一般操作数据库这些比较消耗资源的类一定要记得关闭资源这里介绍两种常用的方法
eg1:使用try...catch..finally
在finally中关闭资源 在这里需要引入Oracle.DataAccess.dll
string constr = ConfigurationManager.ConnectionStrings["strConn"].ConnectionString; OracleConnection o_Conn = null; try { o_Conn = new OracleConnection(constr); o_Conn.Open(); TextBox1.Text = o_Conn.ServerVersion + "," + o_Conn.ServiceName + "," + o_Conn.State.ToString(); } catch (Exception ex) { Response.Write(ex.Message); } finally { o_Conn.Close(); }eg2:使用useing,将链接类放在using()里面,执行完代码块自动关闭资源
using (o_Conn = new OracleConnection(constr)) { o_Conn = new OracleConnection(constr); o_Conn.Open(); TextBox1.Text = o_Conn.ServerVersion + "," + o_Conn.ServiceName + "," + o_Conn.State.ToString(); }二、下面说下链接的时候可能会遇到的问题。
我们这里有可能碰到加载Oracle.DataAccess.dll失败等一系列与Oracle.DataAccess.dll有关的异常
在配置iis服务的时候也会碰到这些异常其实异常归根结底还是Oracle.DataAccess.dll版本问题
有可能你装了64位的服务器,却装了32位的客户端导致,首先确保你的服务器你和的客户端的版本是一样的 然后确保你程序的bin文件夹下的
Oracle.DataAccess.dll的版本和你ODP.NET地下bin下的Oracle.DataAccess.dll的版本一样。
还有就是你有可能装的是64位的Oracle.DataAccess.dll,而vs默认服务器32位的,反正我现在还不知道怎么更改默认的启动服务器为64位
不过还有一个解决方法就是可以更改启动方式为iis启动,在项目--属性--服务器--本地iis。这里我大概说下思路具体操作可以问百度。
相关文章推荐
- Oracle用 odp.net 时出现 Oracle.DataAccess.Client.OracleConnection的类型初始值设定项引发异常 问题的解决
- Oracle.ManagedDataAccess.dll 连接Oracle数据库不需要安装客户端
- IIS8无法调用Oracle.DataAccess .dll问题
- Oracle.ManagedDataAccess.dll 连接Oracle数据库不需要安装客户端
- 关于在Asp.net下使用Oracle.DataAccess.dll(Oracle10g)执行参数化Update无效的解决方案之一
- Oracle.DataAccess.dll、system.data.oracleclient.dll在64位运行问题
- Oracle.ManagedDataAccess.dll 连接Oracle数据库不需要安装客户端
- 关于在Asp.net下使用Oracle.DataAccess.dll(Oracle10g)执行参数化Update无效的解决方案之一
- Advanced Data Access with ADO.NET and Oracle
- winform连接oracle时Oracle.DataAccess.dll版本问题 Silverlight
- Asp.net using Oracle.DataAccess.dll access oracle 11g 64bit & x86
- C#连接Oracle数据库使用Oracle.ManagedDataAccess.dll
- IBatisNet+Oracle.ManagedDataAccess打造无需安装oracle客户端和ODP即可连接oracle数据库
- C#连接Oracle数据库(直接引用dll使用-Oracle.ManagedDataAccess.dll)
- ASP.NET 链接 Access 数据库路径问题最终解决方案
- 【Oracle】Oracle数据库的连接及连接异常问题
- .NET中访问Oracle数据库链接:ORA-02041: client database did not begin a transaction 问题的处理。
- 解决vb.net 2003:未处理的“System.NullReferenceException”类型的异常出现在 system.data.dll 中
- “System.BadImageFormatException”类型的未经处理的异常在 PurchaseDevices.Access.dll 中发生 其他信息: 未能加载文件或程序集“System.Data.SQLite, Version=1.0.66.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139”或它的某一个依赖项。试图加载格式不正确
- Socut.Data.dll - ASP.Net数据库(Access或SQL Server)连接操作类