日期:2014-05-17  浏览次数:21052 次

函数计算已终止 好像是封装问题 求大神解答
自己封装的第基类:
C# code

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