2012-12-18 37 views
2

如果我理解這個權限,是否必須使用表格適配器將數據存入我的類型化數據集中,我不能只創建強類型數據集並讓數據自動載入? (IM也使用VS2012一個.net 3.5項目)鍵入數據集的正確用法

例如,我必須這樣做是爲了獲取數據(如果我這樣做,這樣一來,我得到的數據)

var a = new V7RTLEvtDataSetTableAdapters.tblFileTableAdapter(); 
    a.GetData(); 

而不只是這樣做(如果我做這種方式,我什麼也沒有......如果它的延遲加載我能理解......?)

V7RTLEvtDataSet o = new V7RTLEvtDataSet(); 
var r = o.tblFile.Select(); 

回答

0

大多數被誣衊,被誤解的強類型數據集! 通常情況下,您會使用TableAdapter加載數據並執行更新。 使用設計師,您可以將參數查詢添加到表格適配器,以支持您的程序需要的操作。例如select * from customers where customerid = @customerid

稱這個FillbyCustomerid

然後你會拉的數據使用TableAdapter所選客戶的東西沿着線:

dim ta as new dscustomerstableadapters.customertableadapter 
dim ds as new dsCustomers 
ta.fillbycustomerid (ds.customers, ourid) 
+0

我想我越來越瞭解這些數據集,我希望找到更多的數據集,它與後端訪問數據庫有一個活躍的連接,以便表自動加載(或至少是第一次需要時),以及通過數據集(通過數據表)進行的更改,可以立即在db中查看。 – nagates

+0

好吧,數據集不能像那樣工作。它們本質上是'斷開'的 - 你將數據放入它中,處理它,然後提交你的更新。(數據集似乎在SO上的聲譽非常糟糕 - 請參閱其他一些回覆 - 但也是因爲看起來很多垃圾人士實際上並不知道如何使用它們。) – peterG

+0

是的,它們似乎更多但是,在使用舊版Access文件時,它可能是我的最佳選擇。 – nagates

1

所有數據集(類型和無類型)是數據庫無關的,即任何DataTable可以從Oracle填充,就像從MS-Sql一樣簡單。 DataSet不知道模式或連接字符串。

您需要一個適配器才能從後備存儲讀取數據。

(和DataTable.Select()可能是從Linq到數據集)。

+0

這似乎只是奇怪的是,它會去通過添加一個連接字符串我設置的努力,我可以在我輸入的數據集上使用linq嗎?我要一次加載一張表,還是有辦法一次性批量填充? – nagates

+0

您只能使用Linq _after_填寫數據集。最實用的方法是使用適配器。 –

0

類型化數據集的最佳用法:忽略,從不使用。改爲OTM。使用LINQ。數據集 - 類型化和非類型化 - 在.NET 1.0中很糟糕,因爲即使MS已經實現了替代方案。 10年內不使用一次,不會使用一次。

例外情況:報告SQL是「外部輸入」的應用程序,因此您基本上只需要一個通用數據容器。

使用EntityFramework或其中一種替代方法。

+0

我使用舊的Access Db,所以我的選項有限。 – nagates

+0

但是如果你有他們,我願意接受替代品嗎? – nagates

+0

@NateGates不確定。我不處理訪問10年。廢話不是我曾經處理的。抱歉,這是訪問權限。自從SQL CE以來,幾乎沒有任何訪問不只是過時的情況。不知道 - 你可以嘗試NHibernate。 – TomTom