逆水行船

别人的天堂,是我的异乡;无端的繁华,倍添我的惆怅

 

Attribute学习:SqlParameterAttribute

using System;
using System.Data;
using Debug = System.Diagnostics.Debug;

namespace WebApplication1
{
 /// <summary>
 /// 存储SQL语句参数信息的属性。
 /// 这些信息包括参数的名称、类型、方向、大小、精度等。
 /// </summary>
 [AttributeUsage(AttributeTargets.Parameter)]
 public class SqlParameterAttribute : Attribute
 {
  private string name;               // 参数名称       
  private bool paramTypeDefined;     // 是否参数的类型已经定义
  private SqlDbType paramType;       // 参数类型
  private int size;                  // 参数尺寸大小
  private byte precision;            // 参数精度
  private byte scale;                // 参数范围
  private bool directionDefined;     // 是否定义了参数方向
  private ParameterDirection direction;  // 参数方向

  public SqlParameterAttribute()
  {
   //
   // TODO: 在此处添加构造函数逻辑
   //
  }

  public SqlParameterAttribute(string name)
  {
   Name = name;
  }

  public SqlParameterAttribute(int size)
  {
   Size = size;
  }

  public SqlParameterAttribute(SqlDbType paramType)
  {
   ParamType = paramType;
  }

  public SqlParameterAttribute(string name, SqlDbType paramType)
  {
   Name = name;
   ParamType = paramType;
  }

  public SqlParameterAttribute(SqlDbType paramType, int size)
  {
   ParamType = paramType;
   Size = size;
  }

  public SqlParameterAttribute(string name, int size)
  {
   Name = name;
   Size = size;
  }

  public SqlParameterAttribute(string name, SqlDbType paramType, int size)
  {
   Name = name;
   ParamType = paramType;
   Size = size;
  }


  /// <summary>
  /// 参数名称
  /// </summary>
  public string Name
  {
   get
   {
    return name == null ? string.Empty : name;
   }
   set
   {
    name = value;
   }
  }


  /// <summary>
  /// 参数尺寸大小
  /// </summary>
  public int Size
  {
   get
   {
    return size;
   }
   set
   {
    size = value;
   }
  }


  /// <summary>
  /// 参数精度
  /// </summary>
  public byte Precision
  {
   get
   {
    return precision;
   }
   set
   {
    precision = value;
   }
  }


  /// <summary>
  /// 参数范围
  /// </summary>
  public byte Scale
  {
   get
   {
    return scale;
   }
   set
   {
    scale = value;
   }
  }


  /// <summary>
  /// 参数方向
  /// </summary>
  public ParameterDirection Direction
  {
   get
   {
    Debug.Assert(directionDefined);
    return direction;
   }
   set
   {
    direction = value;
    directionDefined = true;
   }
  }


  /// <summary>
  /// 参数类型
  /// </summary>
  public SqlDbType ParamType
  {
   get
   {
    Debug.Assert(paramTypeDefined);
    return paramType;
   }
   set
   {
    paramType = value;
    paramTypeDefined = true;
   }
  }

  /// <summary>
  /// 是否已命名
  /// </summary>
  public bool IsNameDefined
  {
   get
   {
    return (name != null && name.Length != 0);
   }
  }

  /// <summary>
  /// 是否已设定参数类型
  /// </summary>
  public bool IsTypeDefined
  {
   get
   {
    return paramTypeDefined;
   }
  }

  /// <summary>
  /// 是否已设定参数方向
  /// </summary>
  public bool IsDirectionDefined
  {
   get
   {
    return directionDefined;
   }
  }

  /// <summary>
  /// 是否已设定范围
  /// </summary>
  public bool IsScaleDefined
  {
   get
   {
    return scale != 0;
   }
  }

  /// <summary>
  /// 是否已设定精度
  /// </summary>
  public bool IsPrecisionDefined
  {
   get
   {
    return precision != 0;
   }
  }

  /// <summary>
  /// 是否已设定大小
  /// </summary>
  public bool IsSizeDefined
  {
   get { return size != 0; }
  }
 }
}

posted on 2005-07-26 11:30  荣-  阅读(204)  评论(0编辑  收藏  举报

导航