日期:2014-05-17 浏览次数:21242 次
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Collections;
using BLL;
namespace Model
{
/// <summary>
/// 其他模板类的基类
/// 通过GUID实例化 将调用DAL 会进行数据库访问 从何获取一个DATATABLE赋值
/// 通过DATAROW实例化无需数据库访问 会循环以列名 值 的格式存入HashTable(Ht)
/// 无参数实例化
/// 索引器接收STRING类型参数 作为HT的KEY 取值
///
/// 创建时间:2011年8月29日10:31:03
/// </summary>
public class ObjectData : Object
{
#region 变量属性
string guid = string.Empty; //GUID
public string Guid
{
get { return guid; }
set { guid = value; }
}
string name = string.Empty; //Name
public string Name
{
get { return name; }
set { name = value; }
}
int dataState = 0; //数据状态
public int DataState
{
get { return dataState; }
set { dataState = value; }
}
Hashtable ht = new Hashtable(); //字段集合
public Hashtable Ht
{
get { return ht; }
set { ht = value; }
}
DateTime _CreateTime; //数据创建时间
public DateTime CreateTime
{
get { return _CreateTime; }
}
#endregion
#region 构造函数和索引器
//索引器
public virtual object this[string Key]
{
get { return ht[Key]; }
}
//无参数实例化
public ObjectData() : base() { }
//GUID 表名实例化
/// <summary>
/// 基本所有数据都有GUID 所以 接收一个GUID 一个TABLENAME
/// </summary>
/// <param name="guid"></param>
/// <param name="TableName"></param>
public ObjectData(string guid, string TableName)
: base()
{
}
//数据行实例化
/// <summary>
/// 根据DataRow生成
/// </summary>
/// <param name="dr"></param>
public ObjectData(DataRow dr)
{
FillData(dr);
}
#endregion
#region 方法
public override string ToString()
{
return name;
}
//判断是否相等
/// <summary>
/// 检查是否相等
/// </summary>
/// <param name="guid">传入了一个guid</param>
/// <returns>返回结果</returns>
public virtual bool Equals(string guid)
{
if (this.guid == guid)
return true;
return false;
}
public virtual bool Equals(ObjectData obj)
{
if (this.guid == obj.guid)
return true;
return false;
}
//存入数据
/// <summary>
/// 填充数据用
/// </summary>
/// <param name="dt"></param>
public virtual void FillData(DataRow dt)
{
foreach (DataColumn dc in dt.Table.Columns)
{
switch (dc.ColumnName.ToLower())
{
case "name":
this.Name = dt[dc.ColumnName].ToString();
break;
case "guid":
this.Guid = dt[dc.ColumnName].ToString();
break;
case "createtime":
this._CreateTime = DateTime.Parse(dt[dc.ColumnName].ToString());
break;
}
ht.Add(dc.ColumnName, dt[dc.ColumnName].ToString());
}
}
//实例化Item实例
public virtual void FillItem(DataTable dt)
{
throw new Exception(&q