2014-02-13 66 views
0

我想創建該函數並傳遞值以減少編碼中的重複代碼。.Net中的dr [「MyColumn」]對象的類名稱/類型是什麼?

它將在GridView中ItemDataBound事件

DataRowView drv = e.Row.DataItem as DataRowView; 
MyFunc(drv["HasDonePart1"]); 
MyFunc(drv["HasDonePart2"]); 
MyFunc(drv["HasDonePart3"]); 
etc... 

這樣調用該函數會像下面

private void MyFunc ((ClassName) item) 
{ 
    if (item == DBNULL.value) 
    { 
     //do something 
    } 
    else 
    { 
     string myValue = item.ToString(); 
     //do other things 
    } 
} 

但我不知道我應該把我的方法接受物體。

+0

沒有足夠的信息。 DataRowView的索引器被聲明爲返回'object';它實際返回的內容取決於列的類型。您可以使用調試器來查找或打印出'drv [「HasDonePart1」]。GetType()。FullName'。 – TypeIA

+0

它返回System.DBNull。實際上它返回的是對象的類型而不是值的類型,對吧? – TTCG

回答

0

變化MyFunc接受object,而不是:

private void MyFunc(object item) 
{ 
    if (item == DBNull.Value) 
    { 
     // Do something 
    } 
    else if (item is string) 
    { 
    } 
    else if (item is decimal) 
    { 
    } 

    // etc. 
}