2012-05-28 34 views
0

如果這將是一個糟糕的問題,我非常抱歉。我做了很少的數據庫編程。這可能是從頭開始閱讀的時候,我可能會在某個時候做,但我現在需要時間。使用DataSet無緩存對數據庫執行操作

有沒有一種方法可以執行類似DataSet的操作,例如在Oracle數據庫中插入,刪除等,而不緩存數據庫塊?我正在尋找的東西,以避免輸入任意字段/列的對象的尷尬的SQL查詢。我可以定義一個DataRow並將其插入(或基於某個鍵更新它)。我看不出我如何通過緩存來做到這一點,因爲我無法緩存整個數據庫。這很大。

由於實體在很大程度上是任意的,我不想定義靜態類來包裝它們。

+0

你在使用類型化的DataSet嗎?或者你是否使用帶有DataSet實例的'DataReader'? –

回答

1

如果您正在使用鍵入DataSet您可以爲填充方法提供參數。使它們僅用必要的行填充DataTable

如果您使用的是DataReader,則可以在查詢字符串中提供任何種類的查詢。

基本上你只能'緩存'你想改變的行。

+0

這可能是我現在想要做的。謝謝你的提示。 – GregRos

0

有點困難告訴你真正需要的...

但可以查詢Oracle數據元數據字典視圖,然後動態地構建基於這些結果中的SQL語句。

+0

我基本上想要在DataSet/DataTable *上執行操作,而不使用Fill方法進行緩存。除非我以某種方式誤解並且不會緩存整個表格。 – GregRos

2

我不知道我是否完全理解你的問題。你可以用一個方法創建一個類來完成Upsert。該方法將接收DataRow,並且您可以在該方法中設置規則,以根據數據行中的值插入或更新數據庫。但是你必須編寫自己的SQL查詢來插入或檢查記錄是否存在於數據庫中,然後進行更新。

爲什麼不使用ORM。像實體frameowkrk,NHibernate的

  1. Entity Framework
  2. NHibernate

你將不再需要編寫任何SQL查詢,並可以自定義選項來啓用LazzyLoading

+0

這是我應該做的,但說實話,我恐怕學習這些框架可能比我有更多的時間。我真的很想爲這個問題做個快速解決,至少在這個時候是正確的。 – GregRos

相關問題