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默認值可以設為當前值;只要默認值類型設置正確,<>可以去掉
}
}
}
}