c# 遍歷DataTable 獲取值之擴展加泛型

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章