vs2012 连接oracle11g 及数据的insert及select 的总结

下载链接Oracle 11g所需的驱动ODTwithODAC1120320_32bit,下载链接为http://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html

安装ODTwithODAC1120320_32bit,安装过程中选择安装产品是只需要选择Oracle Client即可

 

转载安装完ODTwithODAC112012,出现ORA-12560:TNS:协议适配器错误

参考:http://blog.csdn.net/tan_yixiu/article/details/6762357

操作系统:windows7

开发工具:VS2012

数据库:oracle11g

安装ODAC :ODTwithODAC112012后,出现ORA-12560:TNS:协议适配器错误

ODTwithODAC112012的下载地址:http://www.oracle.com/technetwork/topics/dotnet/utilsoft-086879.html

 

进入系统环境变量设置,查看Path路径,发现在安装ODAC时,同时安装了oracle客户端,

安装完成后发现在Path路径的最前面多了两个安装ODAC时产生的路径

F:\app\Administrator\product\11.2.0\client_1;

F:\app\Administrator\product\11.2.0\client_1\bin;

此时path路径为:F:\app\Administrator\product\11.2.0\client_1;F:\app\Administrator\product\11.2.0\client_1\bin;E:\app\Administrator\product\11.2.0\dbhome_1\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;

这两个路径放到了oracle11g数据库路径前面,导致出现ORA-12560:TNS:协议适配器错误

将新加入的路径F:\app\Administrator\product\11.2.0\client_1;F:\app\Administrator\product\11.2.0\client_1\bin;置后(oracle数据库路径的后面)即可解决ORA-12560:TNS:协议适配器错误。

例如:将path修改为:E:\app\Administrator\product\11.2.0\dbhome_1\bin;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%SYSTEMROOT%\System32\WindowsPowerShell\v1.0\;F:\app\Administrator\product\11.2.0\client_1;F:\app\Administrator\product\11.2.0\client_1\bin;

解决ORA-12560:TNS:协议适配器错误。

 

接下来配置oracle客户端,否则VS2010无法连接到oracle数据

先找到 Oracle 数据库的安装目录,然后在其中找到如下目录

例如:我的安装在 E盘

E:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN

在其中找到下面标记的两个文件:tnsnames.ora 和sqlnet.ora

然后将这两个文件拷贝到 Oracle Developer Tools for Visual Studio .NET 的安装目录下的以下目录,

例如:我的安装在F盘

F:\app\Administrator\product\11.2.0\client_1\Network\Admin

然后便可以重启机器了,就可以了(注意我这个oracle数据库和Oracle Developer Tools for Visual Studio .NET 安装在同一台服务器上了)。

 

vs2012连接oracle11g(本人实践

 技术分享技术分享技术分享

技术分享技术分享

 

连接oracle:

public class DBHelper
{
public const string conStr = "DATA SOURCE=ORCL;USER ID=SCOTT;PASSWORD=tiger";
}

 

要有这个using System.Data.OracleClient;

 

select例子:(没排版)

public LoginUser FindUserByLOGINID(string LOGINID)//通过LOGINID查找T_USERS表
{
string cmdStr = "select LOGINID,LOGINPWD from T_USERS where LOGINID=:LOGINID";
using (OracleConnection conn = new OracleConnection(DBHelper.conStr))
{
conn.Open();
using (OracleCommand cmd = new OracleCommand(cmdStr, conn))
{
cmd.Parameters.AddWithValue("LOGINID",LOGINID);
using (OracleDataReader dr = cmd.ExecuteReader())
{
if (dr.Read())
{
LoginUser u = new LoginUser();
u.LOGINID = Convert.ToString(dr["LOGINID"]);
u.LOGINPWD = Convert.ToString(dr["LOGINPWD"]);
return u;
}
return null;
}
}
}

}

 

insert例子:(没排版)

public int SubmitRegisterInformation(RegisterUSER u)//提交用户注册信息
{
string cmdStr = @"INSERT INTO T_USERS
(LOGINID
,LOGINPWD
,REGISTER_TIME)
VALUES
(:LOGINID
,:LOGINPWD
,TO_DATE(:REGISTER_TIME,‘yyyy-mm-dd hh24:mi:ss‘))";//REGISTER_TIME在oracle数据库里是date类型,不过存进oracle里显示的是技术分享,这个问题以后详细讲
using(OracleConnection conn = new OracleConnection(DBHelper.conStr))
{
conn.Open();
using (OracleCommand cmd = new OracleCommand(cmdStr, conn))
{

string register_time = DateTime.Now.ToShortDateString();
register_time += DateTime.Now.ToShortTimeString();

//string register_time = DateTime.Now.ToLongDateString().ToString();
//register_time += DateTime.Now.ToLongTimeString().ToString();

cmd.Parameters.AddWithValue("LOGINID",u.LOGINID);
cmd.Parameters.AddWithValue("LOGINPWD", u.LOGINPWD);
cmd.Parameters.AddWithValue("REGISTER_TIME",register_time);
return cmd.ExecuteNonQuery();
}
}
}

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。