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