ERP系統表格比較多,用的比較多的是DataTable綁定到gridControl上。表格內容編輯完,保存到庫的時候,會需要遍歷table的行,獲取某行某列的值,現在寫一個DataRow的擴展方法,用泛型,獲取值:
public static class getVlue
{
/// <summary>
/// 寫DataRow的擴展方法
/// </summary>
/// <typeparam name="T"></typeparam>
/// <param name="row"></param>
/// <param name="name"></param>
/// <returns></returns>
public static T getVlaueForType<T> ( this DataRow row , String name )
{
T result = default ( T );
var value = row [ name ];
if ( value != null && !Convert . IsDBNull ( value ) )
{
result = ( T ) value;
}
return result;
}
}
static void Main ( string [] args )
{
var observabl = Observable . Range ( 0 , 10 );
observabl . Subscribe ( x => Console . WriteLine ( "Received {0}" , x ) ,
e => Console . WriteLine ( "onError {0}" , e ) ,
( ) => Console . WriteLine ( "Finshed" ) );
DataTable table = new DataTable ( );
table . Columns . Add ( "T1" , typeof ( System . Int32 ) );
DataRow row = table . NewRow ( );
row [ "T1" ] = 123;
table . Rows . Add ( row );
//調用擴展方法,獲取值
int k = table . Rows [ 0 ] . getVlaueForType<int> ( "T1" );
Console . WriteLine ( k );
Console . Read ( );
}