免费邮箱 |加入收藏 | 会员中心 | 我要投稿 | RSS
您当前的位置:首页 > .NET专区 > ASP.NET应用

ado.net快速上手实践篇(一)

时间:2011-05-21 10:43:51  来源:站内  作者:潘春会

                string columnName = rdr.GetName(i).ToUpper(); //不区分大小写
                string columnRealName = rdr.GetName(i);
                if (ht.ContainsKey(columnName) == false)
                {
                    ht.Add(columnName, columnRealName);
                }
            }
            return ht;
        }

        private static void SetValue(PropertyInfo propInfo, Object obj, object objValue)
        {
            try
            {
                propInfo.SetValue(obj, objValue, null);
            }
            catch
            {
                object realValue = null;
                try
                {
                    realValue = Convert.ChangeType(objValue, propInfo.PropertyType);
                    propInfo.SetValue(obj, realValue, null);
                }
                catch (Exception ex)
                {
                    string err = ex.Message;
                    //throw ex; //在数据库数据有不符合规范的情况下应该及时抛出异常
                }
            }
        }

        #endregion
    }
}

 

到这里,简单的数据访问持久化层就实现了。下面模仿楼猪使用的IBatis.net,写个伪SqlMapper,改善一下调用形式,丰富一下调用方法,让方法辨识度更高。
四、实现伪SqlMapper
1、BaseMapper类


代码
using System;
using System.Collections.Generic;
using System.Data;
using System.Data.Common;
using System.Data.SqlClient;

namespace AdoNetDataAccess.Mapper
{
    using AdoNetDataAccess.Core.Contract;

    public abstract class BaseMapper
    {
        public IDbOperation CurrentDbOperation;

        #region query for list

        public abstract IList<T> QueryForList<T>(string sqlStr)
  where T : class, new();

        public abstract IList<T> QueryForList<T>(string sqlStr, Type objType)
where T : class, new();

        public abstract IList<T> QueryForList<T>(string sqlStr, CommandType cmdType, List<DbParameter> listParams)
       where T : class, new();

        public abstract IList<T> QueryForList<T>(string sqlStr, CommandType cmdType, List<DbParameter> listParams, Type objType)
       where T : class, new();


        #endregion

来顶一下
返回首页
返回首页
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表
推荐资讯
如何找出DHCP地址池里未使用的IP地址
如何找出DHCP地址池里
国内常用的DNS列表
国内常用的DNS列表
Linux邮件服务器软件比较
Linux邮件服务器软件比
学用纯CSS打造可折叠树状菜单
学用纯CSS打造可折叠树
相关文章
栏目更新
栏目热门