標籤:c# oracle sql
一.串連Oracle資料庫
- 安裝用戶端: oracle資料庫搭建在遠程伺服器上,本地只需要裝個用戶端,然後在安裝目錄下(D:\app\fangs\product\12.1.0\client_3\Network\Admin ,不一定是D盤) 配置tnsnames.ora,配置可以參考同目錄下的Sample 檔案夾中的內容。就是指明串連名,遠程ip,servicename/SID。 然後可以利用sql develper工具開啟資料庫,查看資料庫中的所有內容。
- c#程式通過ADO.NET串連: 首先建立連接字串 : string connStr ="DATA SOURCE=***;PASSWORD=***;USER ID=**" ,以及後續的ADO.NET 操作就可以串連上資料庫了。
- 擷取資料:參考 MSDN MSDN ado.net
I. 建立資料庫連接,conn.open()
II. 建立DataAdapter,這是資料庫與DataSet對象之間的串連
III. 聲明並建立一個DataSet對象執行個體,然後才能開始載入資料,該名稱可以包含若干獨立的表
IV. DataAdapter提供Fill,與FillSchema方法。
FillSchema方法會載入一些資料表資訊,列名,約束等。
V. DataSet中的Tables集合內獨立的DataTable對象來提供資料
VI. DataTables.Row可以訪問每一行
二 C#中的資料類型與 Oracle 資料庫欄位類型對應關係
參考此篇文章
特別注意的是oracle資料庫中 Number(10,1)這種類型的就可以用decimal
三.sql
一 中需要進行sql的傳入,所以這裡講下sql 字串的寫法。
- string [email protected]"";:@:C#中特殊的字串聲明方式,叫做 “逐字字串”(verbatim strings),使用這個符號會告訴編譯器這是個逐字字串,它本身常用於寫指定檔案或目錄的路徑,因為它會通知編譯器將 ’\‘作為文本常量而不是逸出字元。在這裡使用它是因為 sql語句可能很長,他支援換行寫字串
- 傳參數給sql : string sql = @"nsert into A Values(:ID_NUM) 用 :表明這是個變數,這是oracle資料庫的表達方式。其他資料庫使用其他標示方式,如sqlserver使用@。注意這裡的參數名不能使oracle資料庫的關鍵詞,否則會報錯,顯示這個參數名無效 。
- sql 語句加 常量:eg. where a>2 ,將2定義為 類 Constants中的一個變數 count 。就可以寫成 where a> ‘" + Constants.count + @"‘ 一定要注意空格,否則可能識別不出關鍵詞
備忘:在c#中寫sql語句時,先將sql語句放在sql developer中執行,確保sql文法沒有錯誤,再寫到程式中。像上面提到的 傳參 用 “:”標記,sql developer中都是可以檢查出來的
C#與Oracle資料庫