您的位置:首页 > 数据库

分享下自己一直用的.NET SQLSERVER 封装类下自己写的DataHelper 操作类

2013-11-22 19:52 351 查看
一,概述:

这个DataHelper 类是基于我上个博客里发的SQLDataAccess 这个类做的一个简单的封装,为了结合自己的实体类和数据操作而产生的。

这里面用了 属性类,反射。还有 数据类型的方法扩展。(入门的同学可以看看。)

这里面有几个地方要注意下,一个是 GetEntity<T> 方法里的 ModelDataAttribute 对象,是我自己写的一个实体属性类。

还有 connString.IsNullOrEmpty() 这个是我封装的一个Stirng 的扩展类(StringExtensions)里的方法。这两个类在下面可以找到。

这个DataHelper类,必须基于 SQLDataAccess 和我自己定义的实体类的形式才可以实现。 这里大家只是借鉴下就好了.

yeqw.FrameWork; 我把 ModelDataAttribute [b]StringExtensions 封装到里面了。[/b]

二:代码:

DataHelper:(这里写的不是太好,其中的分页只是调用一个分页存储过程。这个Helper里最大的一个问题,就是不支持事务,一直没考虑好怎么把事务封进来)

namespace yeqw.FrameWork
{
using System;
using System.Data;
using System.Runtime.CompilerServices;

[AttributeUsage(AttributeTargets.Property, Inherited=true)]
public class ModelDataAttribute : Attribute
{
public ModelDataAttribute(string sqlFieldName, SqlDbType sqlParameterType) : this(sqlFieldName, sqlParameterType, 0)
{
}

public ModelDataAttribute(string sqlFieldName, SqlDbType sqlParameterType, int sqlparametersize) : this(sqlFieldName, sqlParameterType, sqlparametersize, ParameterDirection.Input)
{
}

public ModelDataAttribute(string sqlFieldName, SqlDbType sqlParameterType, int sqlparametersize, ParameterDirection sqlParameterDirection)
{
this.SQLFieldName = sqlFieldName;
this.SQLDbType = sqlParameterType;
this.SQLSize = sqlparametersize;
this.SQLParameterDirection = sqlParameterDirection;
}

public void Validate(object value)
{
if (!this.CanNull && string.IsNullOrEmpty(value.ToString()))
{
throw new ArgumentException(this.Message);
}
}

public bool CanNull { get; set; }

public string Message { get; set; }

public SqlDbType SQLDbType { get; set; }

public string SQLFieldName { get; set; }

public ParameterDirection SQLParameterDirection { get; set; }

public int SQLSize { get; set; }

public enum EnumValidateType : byte
{
IsMaxLength = 2,
IsNull = 0,
IsNumber = 1
}
}
}


View Code
三:总结:

  DataHepler 和SQLDataAccess 这两个类都是比较简单的一个类库设计。做任何项目适合自己的才是最好的。用CodeSmith 这样的工具都能生成很好的只要的类库。

但我希望大家尤其是刚入门的童鞋要明白,基础才是一切的根本。知其然更要致其所以然。在编程的路上遇到不同的级别的项目,尤其现在都说的大数据时代。任何的类库

都是有自己的局限性的。只有因地制宜,根据实际需要做出自己最合理的选择才是王道。不仅要举一翻三,更要一通百通。类库是死的人是活的,不管是什么样的技术,明白

基础了,才是最重要的。(自己的一点感慨,瞎喷的。呵呵)

=================================================================
HI,如果童鞋们觉得本人此博文对你有用,请不要吝啬自己的鼠标,给此博文一个“推荐”吧。鼓励,鼓励。哈哈

本博文系博主原创,版权归博主所有,如需转载,请注明转载地址。

当前博客原始地址:yeqw1985.cnblogs.com

=================================================================
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: