2014-02-13 4 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를 참조하십시오

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

    // etc. 
}