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

时间:2021-04-30 16:28:55

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默认值可以设为当前值;只要默认值类型设置正确,<>可以去掉

}

}

}

}