2014-02-13 68 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. 
}