2011-09-11 23 views
1

如果我需要從數據庫中獲取信息,例如發票中的項目,例如...我應該只是將數據存入數據表,並將它們存儲到變量中,還是應該創建一個類?類或變量?

有什麼更好?

MyClass.ItemNumber; 
MyClass.Price; 
MyClass.InvoiceNumber; 

或...

myItemNumber = (int)dt["itemnumber"]; 
myPrice = (double)dt["price"]; 
myInvNum = dt["InvNum"].ToString(); 

爲什麼?如果這是我永遠不需要在其他地方使用的東西,變量是否正確,或者創建「發票類」是否有益?如果我獲取數據,將其存儲在類實例中,是否將它緩存爲.Net中的表單帖子?或者是每個頁面重新創建類實例/數據庫調用等?性能如何?請解釋概念。這些概念對我來說是最難掌握的......編碼 - 容易。 .Net的概念 - 並不那麼容易。

+3

僅供參考,請參閱http://meta.stackexchange.com/questions/2950/should-hi-thanks-taglines-and-salutations-be-removed-from-posts –

+0

您的時間不,謝謝。 –

回答

0

如果它僅供直接使用,那麼這個類肯定是不需要的開銷。

您的數據表dt已經是數據在內存中的實體。變量就足夠了。

+1

我建議數據傳輸對象比DataTable需要少得多的開銷 - 它本身就是一個類。 –

+0

@Mike這裏的情況是簡單地將數據表與類一起使用,還是將臨時變量用於類而不是數據表與類。數據表已被創建。你誤解了這個問題。 – loxxy

2

使用自定義對象(類)來存儲數據的兩個主要原因是類型安全性,並且易於理解/維護等。要理解MyInvoice.Customerdt[0][3].ToString()(string)dt["sCust"]或其他一些可怕的魔法字符串方法要容易得多。

This article from Imar Spaanjaars explains how to use custom objects in ASP.NET development。它基於ASP.NET 2.0,但在傳達概念方面可能是最好的類型。

+0

你有沒有去...安全性,易於理解/可維護性等,OP目前都不需要。簡單地說,現在這個班級是一個不必要的開銷。 – loxxy

+1

該OP繼續說,基本概念是混亂的根源 - 「爲什麼」。我不認爲我誤解了邁克爾的問題。 –

+0

經過幾天我的代碼被愚弄之後,我想我已經明白了。你的意見有幫助。一旦我能夠實際使用它,它就清楚了。我喜歡上課,他們只是看起來太多了,但從長遠來看,對於我來說,何時使用課堂是有意義的。我認爲一個擁有20個變量的類不會比僅僅將數據存儲到20個變量中更多的開銷(如果有的話)? –