您的位置:首页 > 数据库 > Oracle

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位例

<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。这里我大概说下思路具体操作可以问百度。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐