從數(shù)據(jù)訪問的角度來看,ADO(ActiveX Data Objects)是一種在訪問數(shù)據(jù)庫(kù)時(shí)使用的接口程序。ADO可以直接訪問Microsoft Access、Microsoft SQL Server、Oracle等各種數(shù)據(jù)庫(kù)。今天,我們將討論如何使用ADO訪問Oracle數(shù)據(jù)庫(kù)。
在訪問Oracle數(shù)據(jù)庫(kù)時(shí),我們需要使用Oracle Data Provider for .NET。我們首先需要下載安裝Oracle Data Provider for .NET,并引用它。
using System.Data; using System.Data.OracleClient;接下來,我們需要指定連接字符串。連接字符串應(yīng)該包含數(shù)據(jù)庫(kù)的位置,身份驗(yàn)證方式和oracel連接的其他相關(guān)信息。例如:
string connectionString = "Data Source=oracledb; User ID=user; Password=password;";在指定了連接字符串后,我們就可以創(chuàng)建一個(gè)OracleConnection對(duì)象,這個(gè)對(duì)象將幫助我們與數(shù)據(jù)庫(kù)建立連接,如下所示:
OracleConnection conn = new OracleConnection(connectionString); conn.Open();現(xiàn)在,我們已經(jīng)建立了數(shù)據(jù)庫(kù)連接。接下來,我們可以執(zhí)行SQL查詢并獲取數(shù)據(jù)。例如,我們可以使用以下代碼來查詢員工表并獲取所有員工的名字和工資:
string sql = "SELECT name, salary FROM employee"; OracleCommand cmd = new OracleCommand(sql, conn); OracleDataReader reader = cmd.ExecuteReader(); while(reader.Read()) { string name = Convert.ToString(reader["name"]); string salary = Convert.ToString(reader["salary"]); Console.WriteLine("Name: " + name + ", Salary: " + salary); }在上面的代碼中,我們首先創(chuàng)建了一個(gè)OracleCommand對(duì)象,并將SQL查詢字符串傳遞給它。然后,我們調(diào)用ExecuteReader方法執(zhí)行此查詢,并將返回的數(shù)據(jù)存儲(chǔ)在一個(gè)OracleDataReader對(duì)象中。最后,我們使用while循環(huán),遍歷所有結(jié)果,并將結(jié)果打印出來。 此外,我們還可以執(zhí)行各種CRUD操作,例如插入、更新和刪除記錄。例如,以下代碼演示了如何將新員工的記錄添加到員工表中:
string sql = "INSERT INTO employee (name, salary) VALUES ('John', 5000)"; OracleCommand cmd = new OracleCommand(sql, conn); int rowsAffected = cmd.ExecuteNonQuery(); Console.WriteLine(rowsAffected + " rows affected.");在上面的代碼中,我們首先創(chuàng)建了一個(gè)包含新員工信息的SQL查詢字符串。然后,我們創(chuàng)建了一個(gè)OracleCommand對(duì)象,將此查詢字符串傳遞給它,并使用ExecuteNonQuery方法來執(zhí)行此查詢。最后,我們打印出插入的行數(shù)。 總結(jié)起來,ADO是一種強(qiáng)大的數(shù)據(jù)庫(kù)訪問工具,我們可以使用它訪問各種數(shù)據(jù)庫(kù)。在訪問Oracle數(shù)據(jù)庫(kù)時(shí),我們需要使用Oracle Data Provider for .NET,并指定連接字符串。然后,我們可以執(zhí)行各種SQL查詢,包括CRUD操作,并獲取返回的數(shù)據(jù)和受影響的行數(shù)。