顯示具有 DataTable 標籤的文章。 顯示所有文章
顯示具有 DataTable 標籤的文章。 顯示所有文章

2016年10月11日 星期二

c# oracle 撈不出資料 但developer撈有資料 | c# oracle can't get data but data can get when query on developer

環境:
VS2013& 類別庫專案 & C# & Oracle.DataAccess 4.121.1.0
情況:
在oracle developer跑一段select  有幾個變數
select blablabla from table where A=:A and B=:B and C=:C
執行結果有資料
但在C#用OracleDataReader撈到DataTable
dt.Load(odr)
撈出來卻沒資料
印出變數跟sql有正確,也沒有跳exception,
查DB的query log也沒看到有執行這段查詢....

解決:
後來發現是變數塞值的時候順序塞錯了
我寫的是
Parameters.Add("A",A)
Parameters.Add("C",C)
Parameters.Add("B",B)
但應該要照順序去塞入
Parameters.Add("A",A)
Parameters.Add("B",B)
Parameters.Add("C",C)
才可以正常的綁定變數

2016年9月1日 星期四

C# 從Oracle db取多個DataTable結果回來 | C# get multi DataTable result from Oracle DB

參考文章:
http://stackoverflow.com/questions/6149836/filling-multiple-datatables-with-1-oraclecommand

簡單來說就是在db上用 SYS_REFCURSOR 輸出結果
用 open cursor for select的方式就可以把結果丟回來
C#端的程式寫法大致上同CALL SP的方式,
參數設定中輸出的資料集是用OracleDbType.RefCursor這個型別