2012-03-22 42 views
0

我想一個數據行列傳遞給做一些驗證,像這樣的方法:傳遞單個數據列的方法

SomeMethod(myDataRow["Col_Name"]) 

我想要做一些檢查和返回值。無法弄清楚如何僅傳遞該數據行的列值。我可以通過整個datarow,但我想避免這種情況。

的想法是通過列引用和可能的類型描述,有點像:

SomeMethod(dataRowColRef, "ThisColShouldBeAnInt"); 

的一些方法將驗證基於它是否是一個int,字符串值,無論和返回「良好「的價值,這將使程序的其餘部分感到高興。

想法?

+0

你不能通過一個集合?一個列表,IEnumerable或其他? – squelos 2012-03-22 15:19:07

+3

爲什麼'SomeMethod(myDataRow [「Col_Name」])'不起作用,假設簽名像'SomeMethod(object colValue)'? – billinkc 2012-03-22 15:19:34

+0

這有點奇怪。爲什麼要驗證數據庫中列的數據類型?你沒有控制你的數據庫結構嗎?通常,在運行時間之前推斷列的數據類型,否則性能會受影響。 – Diego 2012-03-22 15:22:46

回答

0

你應該從對象的值轉換爲不管它是你傳遞前到上的方式,即:

SomeMethod((int)myDataRow["Col_Name"]) 

如果需要修改它複雜的事情,值;你最好只是返回一個新的值,並重新設置它,如果這是你所需要的,例如:

myDataRow["Col_Name"] = fixField((int)myDataRow["Col_Name"])