我是靠谱客的博主 哭泣咖啡,最近开发中收集的这篇文章主要介绍.net 创建数据层接口,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

    刚开始只知道,怎样定义一个接口,怎样实现接口,却不知道怎样调用接口中的方法.今天就尝试着自己去写了一个创建数据层接口的示例:

    首先,我们定义一个数据访问层类:

using System;
using System.Data;
using System.Data.OracleClient;
using IDal;
namespace OracleDal
{
public partial class Query :IQuery
{
public Query()
{ }
public DataTable GetTable()
{
string connStr=System.Configuration.ConfigurationManager.ConnectionStrings["ApplicationServices"].ToString();
using(OracleConnection connection = new OracleConnection(connStr))
{
DataTable dt = new DataTable();
try
{
connection.Open();
OracleDataAdapter da = new OracleDataAdapter("SELECT g.goods_name, g.goods_no FROM goods g" , connection);
da.Fill(dt);
}
catch(System.Data.OracleClient.OracleException ex)
{
throw new Exception(ex.Message);
}
return dt;
}
}
}
}

定义的接口如下:

using System.Data;
namespace IDal
{
public interface IQuery
{
DataTable GetTable();
}
}

业务逻辑层如下:

using System.Data;
using DataAccess;
namespace Bll
{
public class Query
{
private readonly IDal.IQuery dal=DataAccessCreate.CreateIQuery();
public DataTable GetTable()
{
return dal.GetTable();
}
}
}

创建的展示页面如下:(div+css控制样式)



<div>
<ul>
<asp:Repeater ID="rptList" runat="server">
<ItemTemplate>
<li>
<%#Eval("goods_name")%></li>
<li>
<%#Eval("goods_no")%></li>
</ItemTemplate>
</asp:Repeater>
</ul>
</div>

 


下面则是创建数据层接口:


using System.Configuration;
using System.Reflection;
using System.Web;
namespace DataAccess
{
  public class DataAccessCreate
    {
        private static readonly string AssemblyPath = ConfigurationManager.AppSettings["DAL"];
 
public DataAccessCreate()
        { }
       //不使用缓存
        private static object CreateObjectNoCache(string AssemblyPath , string classNamespace)
        {
            try
            {
                object objType = Assembly.Load(AssemblyPath).CreateInstance(classNamespace);
                return objType;
            }
            catch(System.Exception ex)
            {
                string str=ex.Message;// 记录错误日志
                return null;
            }
        }
        //使用缓存
        private static object CreateObject(string AssemblyPath , string classNamespace)
        {
            System.Web.Caching.Cache objCache = HttpRuntime.Cache;
            object objType = objCache[classNamespace];
            if(objType == null)
            {
                try
                {
                    objType = Assembly.Load(AssemblyPath).CreateInstance(classNamespace);
                    objCache.Insert(classNamespace , objType);// 写入缓存
                }
                catch(System.Exception ex)
                {
                    string str=ex.Message;// 记录错误日志
                }
            }
            return objType;
        }
        /// <summary>
        /// 创建Query数据层接口。
        /// </summary>
        public static IDal.IQuery CreateIQuery()
        {
            string ClassNamespace = AssemblyPath + ".Query";
            object objType=CreateObject(AssemblyPath , ClassNamespace);
            return (IDal.IQuery)objType;
        }
    }
}

WebConfig配置如下:

 <appSettings>
<add key="DAL" value="OracleDal"/>
</appSettings>

value值为数据访问层类的名称空间.

最后

以上就是哭泣咖啡为你收集整理的.net 创建数据层接口的全部内容,希望文章能够帮你解决.net 创建数据层接口所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(42)

评论列表共有 0 条评论

立即
投稿
返回
顶部