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();
}
}
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM