今天本来看数据库链接,做个简单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>第一个是简单本地数据库,第二个是链接远端db
<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>
我们一般操作数据库这些比较消耗资源的类一定要记得关闭资源这里介绍两种常用的方法
eg1:使用try...catch..finally 在finally中关闭资源 在这里需要引入Oracle.DataAccess.dll
string constr = ConfigurationManager.ConnectionStrings["strConn"].ConnectionString;eg2:使用useing,将链接类放在using()里面,执行完代码块自动关闭资源
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();
}
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。这里我大概说下思路具体操作可以问百度。