c# 遍历DataTable 获取值之扩展加泛型

本文介绍了一种在ERP系统中使用DataTable的高效方法。通过创建DataRow的扩展方法getVlaueForType,实现了泛型类型转换,方便从DataTable中获取指定类型的列值。示例代码展示了如何使用此方法将int类型的数据从DataTable中读取出来。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值