.net c#将数据库数据对象转换为实体值对象

using System;

using System.Data;

namespace Sunlib

{

    public static class DataHelper

    {

      //将数据库数据对象转换为实体值对象

      //T:要转换的类型

      //columnName:列名

      //defValue:默认值

      public static T ToValue<T>(DataRow dr, string columnName,T defValue)

      {

          if(dr.Table.Columns.Contains(columnName)==true)

           {

              if(dr[columnName]!=DBNull.Value&&string.IsNullOrWhiteSpace(dr[columnName].ToString())==false)

              {

                  return (T)(Convert.ChangeType(dr[columnName], typeof(T)))

              }

                //如果获取的字段值为空,就返回默认值

                 return defValue;

           }

           //调用函数ToValue

           public void Update()

            {

              //省略获取Table数据部分代码

              DataRow dr=ds.Tables[0].Rows[0];

              //获取数据表对应字段数值,ToValue默认值很关键,默认值可以决定获取的类型

              string MeterNo=ToValue(dr,"MeterNo","");//string类型默认值加双引号

              decimal Insideno=ToValue(dr,"Insideno",0m);//decimal默认值可以设为0m或者decimal类型值

              DateTime Reading=ToValue<DateTime>(dr,"Reading",DateTime.Now);//DateTime默认值可以设为当前值;只要默认值类型设置正确,<>可以去掉

            }          

      }

    }  

 

 

 

 

 

 

 

}

posted @ 2019-03-21 14:41  那一抹的温柔  阅读(4027)  评论(0编辑  收藏  举报