这段时间维护客户的一个系统,该系统使用的是ORACLE数据库,之前开发的时候用的都是MSSQL,并没有使用过ORACLE。这两种数据库虽然都是关系型数据库,但是具体的操作大有不同,这里作下记录。
连接字符串:
<add name="ConnectionString" connectionString="Password=qswd2015;User ID=qswd;Data Source=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.22)(PORT=1521)))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=ORCL)))" providerName="System.Data.OracleClient"/>
name: 程序中获取的时候就是依据这个来获取web.config中的连接字符串。
Password:ORACLE数据库用户的密码。
User ID:ORACLE数据库用户的帐号。
PROTOCOL=TCP:连接方式,一般不用修改,TCP。
HOST=192.168.1.22:ORACLE服务器的IP地址,主机名也可以,如果你的web服务器和ORACLE数据库都在本地的话,也可以使用.或者127.0.0.1。
PORT=1521:ORACLE数据库默认端口号。
SERVICE_NAME=ORCL 数据库服务名(不懂是不是这个意思),你要连接的数据库名。
程序中获取字符串:
public static string connectionString = ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString;
以上是连接字符串以及获取连接字符串的方式,接下来介绍下遇到的几个坑:
1.首先下载ORACLE客户端工具,这点是必须的,连接ORACLE数据做开发的话必须要安装客户端;
2.最好安装一个ORACLE数据库工具,比如PLSQL,测试连接情况,查询数据;
3.测试连接没有问题,程序连接提示服务名或者连接问题之类的情况,请检查连接字符串是否写对了;
4.如果你安装的是64位的系统,并且安装vs的时候选择的是默认安装,vs的安装目录会选择Program Files (x86) 这样的安装路径对于ORACLE来说是有问题的,因为)的存在,连接ORACLE的时候会提示“连接未打开”。(很坑爹的设定)
5.如果遇到了4中的情况,可以选择重装VS或者按照http://www.cnblogs.com/xiaojinhe2/archive/2013/09/13/3318718.html 中的解决办法。
最后附带上tnsnames.ora中的设置,PLSQL会使用到。
## 配置说明:
# --XIEHENG_192.168.16.20指的是网络服务名,可用SID_HOST来命名(按个人习惯) # --HOST指Oracle服务器的机器名或IP # --PORT指端口,默认为1521 # --XIEHENG指的是Oracle的SID # --SERVER = DEDICATED 不用改 # 请参照以下连接的例子 ORCL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.22)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = ORCL) ) )