㈠ ASP.NET:請問用VS2010連接oracle資料庫的具體步驟!
以下是我們已經完成的一個ASP.NET項目,連接的ORACLE的寫法我就復制一下。
在Web.config中的節點<appSettings>下建:
"<add key="OraConnectionString" value="Provider=MSDAORA.1;Password=登陸資料庫的密碼;User ID=登陸資料庫的用戶名;Data Source=ora9;Persist Security Info=True"/>"
在CS文件中寫:
string strConnection = ConfigurationSettings.AppSettings["OraConnectionString"].ToString();
就可以獲取該連接字元串。
本人愚見,針對該問題希望能對你有所幫助。。。
㈡ 在VS連接Oracle資料庫出現嘗試Oracle客戶端時引發的BadImageFormatException,有沒有人知道解決方案。
這是因為你系統中安裝的Oracle客戶端(也許是直接安裝的Oracle資料庫)為64位,但是連接Oracle的程序是32位的,故造成此異常。解決方法有2種:
1) 安裝32位的Oracle客戶端;
2) 指定程序編譯為64;
如果是在VS中直接連接Oracle資料庫,則只能用32位的Oracle客戶端,因為VS是32位的(目前我知道的VS版本)。
㈢ vs連接Oracle資料庫問題
本機環境:64位win7,安裝了64位的oracle桌面類
伺服器環境:64位windows server 2008,64位oracle伺服器端
問題:本機用sql developer連資料庫沒有問題,winform程序連接也沒有問題,但是web程序連接oracle失敗,報錯:「嘗試載入 Oracle 客戶端庫時引發 BadImageFormatException。如果在安裝 32 位 Oracle 客戶端組件的情況下以 64 位模式運行,將出現此問題。「
解決過程:在網上查找原因,說是因為VS的webDe.webServer.exe 是一個32位的進程,所以連不上64位資料庫,解決方法提了很多,包括把項目的屬性里的生成選項里的目標平台:改為x86,web項里的伺服器改成iis不使用vs自帶的web deleloper ment 服務,修改path環境變數等,但是都沒管用。
最終的解決辦法:安裝32位oracle客戶端(win32_11gR2_client.zip),但是這樣一來winform程序又連不上資料庫了,得把winform程序的項目屬性里生成選項的目標平台改成x86,這樣就都行了。
㈣ 如何使用vs2005連接oracle資料庫
你既然安裝了oracle 10g,而且能正常使用oracle 10g,那麼我以在你自己的機器上運行oracle與vs2005開發的網站來回答你。
1、eoms不是資料庫,只是資料庫實例
你之所以使用pl/sql developer能訪問oracle10g,是因為你的機器環境變數在安裝時已經被oracle修改了,所以你通過pl/sql developer能訪問。
一般oracle的配置文件在:oracle安裝上當\NETWORK\ADMIN\tnsnames.ora
你可使用記事本打開這個文件,大概內容如下:
EOMS =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = oracleservnameorip)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = eoms)
)
)
2、vs2005開發連接oracle的程序
首頁,從C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727將System.Data.OracleClient.dll拷貝出來,推薦放在開發的項目之下
其次,將System.Data.OracleClient.dll引用進入需要操作資料庫的相關項目下去
再次,要需要時引用using System.Data.OracleClient;
最後,關於連接對象的編寫示例如下:
private static OracleConnection conn = new OracleConnection("Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=localhost)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=eoms)));User Id=username;Password=userpassword");
public static void Open()
{
if(conn.State==ConnectionState.Closed) conn.Open();
}
public static void Close()
{
if(conn.State== ConnectionState.Open) conn.Close();
}
其它的就不寫了,這兩步是最重要的,其它的操作與你之前開發過的其它項目中操作資料庫是一樣的。
㈤ vs中怎樣連接伺服器上的oracle資料庫
本地機器tnsnames.ora
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = fuqiang)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
SERVICEORCL=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 伺服器IP)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
伺服器tnsnames.ora
SERVICEORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 伺服器名稱)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
VS中連接代碼:
C# code
OracleConnection oracleConnection = new OracleConnection("Data Source=;User ID=system;Password=manager;Unicode=True");
這樣寫連接字元串,可以連接到本地orcl這個實例,沒有問題。但是想連接到伺服器上的orcl實例,該如何寫連接字元串,其它地方都一樣吧,只是Data Source要怎麼寫?
------回答---------
------其他回答(90分)---------
本地用Net Configuration Assistant 建個net服務,連接倒伺服器,net服務名為ORCL_SVR,確保連接正確,然後Data Source=ORCL_SVR即可。
------其他回答(5分)---------
把你QQ告訴我,我連過去給你看一下。
------其他回答(5分)---------
引用 9 樓 sorry0481 的回復:
又搞了一會,發現問題了,可是不知道怎麼解決,伺服器使用Net Configuration Assistant 測試連接自己,沒有問題。客戶端全用Net Configuration Assistant 測試連接伺服器也沒有問題。可見已經配置好了,但是在運行Microsoft Visual Studio 2008代碼時,連接字元串報錯:「ORA-12154: TNS: 無法解析指定的連接標識符」,看了下斷點,錯誤是這個:
ServerVersion 「((System.Data.Common.DbConnection)(oracleConnection)).ServerVersion」引發了「System.InvalidOperationException」類型的異常 string {System.InvalidOperationException}
分析了下,應該是版本的問題,可是我只安了一個11G,沒有安其它版本,結果想到,是不是安了Oracle Developer Tools for Visual Studio .NET這個引起的??哪位仁兄碰到過類似問題??該怎麼解決???
你確定DB連上了?tnsnames 跟你的config檔設定是否一致?我也遇到過,血的教訓啊。。。
------回答---------
------其他回答(90分)---------
本地用Net Configuration Assistant 建個net服務,連接倒伺服器,net服務名為ORCL_SVR,確保連接正確,然後Data Source=ORCL_SVR即可。
------其他回答(5分)---------
把你QQ告訴我,我連過去給你看一下。
------其他回答(5分)---------
引用 9 樓 sorry0481 的回復:
又搞了一會,發現問題了,可是不知道怎麼解決,伺服器使用Net Configuration Assistant 測試連接自己,沒有問題。客戶端全用Net Configuration Assistant 測試連接伺服器也沒有問題。可見已經配置好了,但是在運行Microsoft Visual Studio 2008代碼時,連接字元串報錯:「ORA-12154: TNS: 無法解析指定的連接標識符」,看了下斷點,錯誤是這個:
ServerVersion 「((System.Data.Common.DbConnection)(oracleConnection)).ServerVersion」引發了「System.InvalidOperationException」類型的異常 string {System.InvalidOperationException}
分析了下,應該是版本的問題,可是我只安了一個11G,沒有安其它版本,結果想到,是不是安了Oracle Developer Tools for Visual Studio .NET這個引起的??哪位仁兄碰到過類似問題??該怎麼解決???
你確定DB連上了?tnsnames 跟你的config檔設定是否一致?我也遇到過,血的教訓啊
㈥ vs2015 c#連接oracle資料庫嗎
首先下載 Oracle Developer Tools for Visual Studio 2015 ,下載此文件需要注冊Oracle社區賬號並接受相關的協議,此文件提供了以下組件:
Oracle Developer Tools for Visual Studio 12.1.0.2.4
Oracle Data Provider for .NET 4 12.1.0.2.0
Oracle Providers for ASP.NET 4 12.1.0.2.0
下載完成後運行MSI安裝程序進行安裝,安裝完成後會自動注冊VS2015的相關插件,重新啟動VS2015後將會看到Oracle的相關命令,比如SQL *PLUS支持等。同時添加資料庫時也能看到相應的選項。
㈦ VS2008如何遠程連接oracle資料庫高分
遠程連接字元串應該是做這個DB的人設置好,然後告訴你的.
比如我做了一個庫叫TEST,並且這個庫的IP是192.168.1.100,
那麼我用ORACLE自帶的NET CONFIGURATION ASSISTANT建立一個NET SEVERS,一路默認設置,那麼連接字元串就是[email protected],當然,如果我願意,我可以把連接字元串改成NEWTEST,別人是不會知道的
1、2、3版本是不同的庫環境。必須伺服器裝下3.5的框架,然後iis設置下asp.net版本就可以了。
如果你那邊沒這類主機,我這邊有做的,可網路HI我。
㈧ visual怎麼連接oracle資料庫
宿主機:Win10 + VS2015 + ODP.Net for VS2015虛擬機:Win7 + Oracle 11g + 橋接
配置ODP.Net
首先下載 Oracle Developer Tools for Visual Studio 2015 ,下載此文件需要注冊Oracle社區賬號並接受相關的協議,此文件提供了以下組件:
Oracle Developer Tools for Visual Studio 12.1.0.2.4
Oracle Data Provider for .NET 4 12.1.0.2.0
Oracle Providers for ASP.NET 4 12.1.0.2.0
下載完成後運行MSI安裝程序進行安裝,安裝完成後會自動注冊VS2015的相關插件,重新啟動VS2015後將會看到Oracle的相關命令,比如SQL *PLUS支持等。同時添加資料庫時也能看到相應的選項。
ODP.Net支持所有Oracle版本,因此下載時只需要注意VS的版本即可。
配置tnsnames.ora
ODP.Net默認使用安裝目錄下的 tnsnames.ora ,若安裝目錄在Program Files下,可能會遇到無許可權等問題,此時使用管理員許可權打開命令行,切換到對應目錄並使用notepad編輯。
復制伺服器端的tnsnames.ora文件內容,或者自己手動編輯,格式如下:
<數據源別名> =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = <主機名或IP>)(PORT = <埠號>))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = <資料庫服務名>)
)
)
添加資料庫
打開 工具 - 連接到資料庫 ,數據源修改為 Oracle資料庫 下的 ODP.NET,託管驅動程序 ,然後點擊 確定 ,打開 添加連接 窗口。
填寫用戶名,密碼並選擇數據源,然後測試連接,成功的話說明已經連通,點擊確定即可。
使用虛擬機搭建資料庫的額外Tips
根據某網友分析,Oracle的監聽器在通過1521埠連接後,會開啟另外一個新的隨機埠進行數據通訊,因此使用NAT方式虛擬網卡可能會導致連接失敗。這種情況下,請使用橋接方式虛擬網卡,並在 net manager 中將 loaclhost 修改為虛擬機當前的IP。重啟監聽服務後,再試。
連接資料庫並使用
連接資料庫
Dim oradb As String = "User ID=system;Password=123456;Data Source=lol"
Dim conn As New OracleConnection(oradb)
conn.Open()
Dim sql As String = "create table xxx"
Dim sqlCom As New OracleCommand
sqlCom.CommandText = sql
sqlCom.Connection = conn
sqlCom.ExecuteNonQuery()
查詢數據
成功配置數據源之後,只需要向界面上拖動 DataGridView ,並進行相關配置,選擇自己需要的表即可。
插入圖片的正確姿勢
圖片作為二進制數據無法直接拼湊出SQL命令,我們需要使用 OracleCommand 自帶的 Parameters 功能。在SQL命令中用 :photo 來代表一個參量,然後使用
sqlCom.Parameters.Add("photo", OracleDbType.Blob, imgData.Length)
來分別指定這個參量的類型和所佔空間大小
最後使用
sqlCom.Parameters(0).Value = imgData
來指定這個參量的值。
整個插入圖片過程的代碼如下:
Dim conn As New OracleConnection(oradb)
Dim imgData(0) As Byte
Dim ms As New System.IO.MemoryStream
PictureBox1.BackgroundImage.Save(ms, PictureBox1.BackgroundImage.RawFormat)
ReDim imgData(ms.Length - 1)
ms.Read(imgData, 0, ms.Length)
ms.Close()
conn.Open()
Dim sql As String = "insert into hero values" & "(" & TextBox1.Text & ":photo" & ")"
Dim sqlCom As New OracleCommand
sqlCom.CommandText = sql
sqlCom.Connection = conn
sqlCom.Parameters.Add("photo", OracleDbType.Blob, imgData.Length)
sqlCom.Parameters(0).Value = imgData
sqlCom.ExecuteNonQuery()
常見錯誤
column not allowed here
數據類型不符,檢查對應項目數據類型是否正確。
missing comma
命令格式不對,檢查一下自己的SQL命令是否有錯誤,特別是在有字元串的時候,需要使用 "" 來代表一個字元串中的 " 。
identifier is too long
標識符過長(不得超過30字元),不是非常明白原因,不過我取消掉insert命令中指定位置的部分之後,這個錯誤消失了。
missing INTO keyword
缺少into關鍵字(手滑打成了inte),檢查一下自己的SQL命令是否有錯誤。
㈨ vs2010中進行C/C++編程,如何連接和使用oracle資料庫
在Windows的控制面板中,查找ODBC數據源,配置一個能夠連接Oracle的數據源,並測試能夠成功連接。然後在VS中連接這個數據源即可。
㈩ vs怎麼連接oracle資料庫代碼
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Oracle.DataAccess.Client;
namespace testConnectionOracle
{
class Program
{
static void Main(string[] args)
{
string connectionString;
string queryString;
connectionString = "Data Source=60.217.72.134/orcl;User ID=**;PassWord=**";
queryString = "SELECT * FROM test";
OracleConnection myConnection = new OracleConnection(connectionString);
OracleCommand myORACCommand = myConnection.CreateCommand();
myORACCommand.CommandText = queryString;
myConnection.Open();
OracleDataReader myDataReader = myORACCommand.ExecuteReader();
myDataReader.Read();
Console.WriteLine("id: " + myDataReader["id"]);
myDataReader.Close();
myConnection.Close();
}
}