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 ( );
}