20078888

技术前线

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

using System;
namespace Model
{
    public class Field
    {
        private bool _allownull;
        private string _defaultvalue;
        private string _fielddescn;
        private int _fieldlength;
        private string _fieldname;
        private int _fieldnumber;
        private int _fieldsize;
        private DataType _fieldtype;
        private bool _isidentifier;
        private bool _iskeyfield;
        private string _name;

        public void SetFieldType(int sqlType)
        {
            switch (sqlType)
            {
                case 0x80:
                    this._fieldtype = DataType.varbinaryType;
                    return;

                case 0x81:
                    this._fieldtype = DataType.textType;
                    return;

                case 0x87:
                    this._fieldtype = DataType.datetimeType;
                    return;

                case 0x74:
                    this._fieldtype = DataType.decimalType;
                    return;

                case 2:
                    this._fieldtype = DataType.smallintType;
                    return;

                case 3:
                    this._fieldtype = DataType.intType;
                    return;

                case 4:
                    this._fieldtype = DataType.realType;
                    return;

                case 5:
                    this._fieldtype = DataType.floatType;
                    return;

                case 6:
                    this._fieldtype = DataType.MoneyType;
                    return;

                case 7:
                    this._fieldtype = DataType.datetimeType;
                    return;

                case 11:
                    this._fieldtype = DataType.bitType;
                    return;

                case 12:
                    this._fieldtype = DataType.sql_variantType;
                    return;

                case 0x11:
                    this._fieldtype = DataType.tinyintType;
                    return;

                case 20:
                    this._fieldtype = DataType.bigintType;
                    return;

                case 0x48:
                    this._fieldtype = DataType.uniqueidentifierType;
                    return;
            }
            this._fieldtype = DataType.ntextType;
        }

        public void SetFieldType(string sqlType)
        {
            switch (sqlType)
            {
                case "bit":
                    this._fieldtype = DataType.bitType;
                    break;

                case "datetime":
                    this._fieldtype = DataType.datetimeType;
                    break;

                case "int":
                    this._fieldtype = DataType.intType;
                    break;

                case "ntext":
                    this._fieldtype = DataType.ntextType;
                    break;

                case "uniqueidentifier":
                    this._fieldtype = DataType.uniqueidentifierType;
                    break;

                case "money":
                    this._fieldtype = DataType.MoneyType;
                    break;

                case "bigint":
                    this._fieldtype = DataType.bigintType;
                    break;

                case "binary":
                    this._fieldtype = DataType.binaryType;
                    break;

                case "char":
                    this._fieldtype = DataType.charType;
                    break;

                case "decimal":
                    this._fieldtype = DataType.decimalType;
                    break;

                case "float":
                    this._fieldtype = DataType.floatType;
                    break;

                case "image":
                    this._fieldtype = DataType.imageType;
                    break;

                case "nchar":
                    this._fieldtype = DataType.ncharType;
                    break;

                case "numeric":
                    this._fieldtype = DataType.numericType;
                    break;

                case "real":
                    this._fieldtype = DataType.realType;
                    break;

                case "smalldatetime":
                    this._fieldtype = DataType.smalldatetimeType;
                    break;

                case "smallint":
                    this._fieldtype = DataType.smallintType;
                    break;

                case "smallmoney":
                    this._fieldtype = DataType.smallmoneyType;
                    break;

                case "sql_variant":
                    this._fieldtype = DataType.sql_variantType;
                    break;

                case "text":
                    this._fieldtype = DataType.textType;
                    break;

                case "timestamp":
                    this._fieldtype = DataType.timestampType;
                    break;

                case "tinyint":
                    this._fieldtype = DataType.tinyintType;
                    break;

                case "varbinary":
                    this._fieldtype = DataType.varbinaryType;
                    break;

                case "xml":
                    this._fieldtype = DataType.xmlType;
                    break;

                case "varchar":
                    this._fieldtype = DataType.varcharType;
                    break;

                default:
                    this._fieldtype = DataType.nvarcharType;
                    break;
            }
        }

        public bool AllowNull
        {
            get
            {
                return this._allownull;
            }
            set
            {
                this._allownull = value;
            }
        }

        public string DefaultValue
        {
            get
            {
                return this._defaultvalue;
            }
            set
            {
                this._defaultvalue = value;
            }
        }

        public string FieldDescn
        {
            get
            {
                return this._fielddescn;
            }
            set
            {
                this._fielddescn = value;
            }
        }

        public int FieldLength
        {
            get
            {
                return this._fieldlength;
            }
            set
            {
                this._fieldlength = value;
            }
        }

        public string FieldName
        {
            get
            {
                return this._fieldname;
            }
            set
            {
                this._fieldname = value;
            }
        }

        public int FieldNumber
        {
            get
            {
                return this._fieldnumber;
            }
            set
            {
                this._fieldnumber = value;
            }
        }

        public int FieldSize
        {
            get
            {
                return this._fieldsize;
            }
            set
            {
                this._fieldsize = value;
            }
        }

        public DataType FieldType
        {
            get
            {
                return this._fieldtype;
            }
        }

        public bool IsIdentifier
        {
            get
            {
                return this._isidentifier;
            }
            set
            {
                this._isidentifier = value;
            }
        }

        public bool IsKeyField
        {
            get
            {
                return this._iskeyfield;
            }
            set
            {
                this._iskeyfield = value;
            }
        }

        public string SQLTypeString
        {
            get
            {
                switch (this._fieldtype)
                {
                    case DataType.intType:
                        return "int";

                    case DataType.bitType:
                        return "bit";

                    case DataType.uniqueidentifierType:
                        return "uniqueidentifier";

                    case DataType.datetimeType:
                        return "datetime";

                    case DataType.MoneyType:
                        return "money";

                    case DataType.ntextType:
                        return "ntext";

                    case DataType.varcharType:
                        return "varchar";

                    case DataType.bigintType:
                        return "bigint";

                    case DataType.binaryType:
                        return "binary";

                    case DataType.charType:
                        return "char";

                    case DataType.decimalType:
                        return "decimal";

                    case DataType.floatType:
                        return "float";

                    case DataType.imageType:
                        return "image";

                    case DataType.ncharType:
                        return "nchar";

                    case DataType.numericType:
                        return "numeric";

                    case DataType.realType:
                        return "real";

                    case DataType.smalldatetimeType:
                        return "smalldatetime";

                    case DataType.smallintType:
                        return "smallint";

                    case DataType.smallmoneyType:
                        return "smallmoney";

                    case DataType.sql_variantType:
                        return "sql_variant";

                    case DataType.textType:
                        return "text";

                    case DataType.timestampType:
                        return "timestamp";

                    case DataType.tinyintType:
                        return "tinyint";

                    case DataType.varbinaryType:
                        return "varbinary";

                    case DataType.xmlType:
                        return "xml";
                }
                return "nvarchar";
            }
        }

        public string TableName
        {
            get
            {
                return this._name;
            }
            set
            {
                this._name = value;
            }
        }
    }
}

posted on 2010-05-07 17:28  许雪林  阅读(196)  评论(0)    收藏  举报