概述
刚开始只知道,怎样定义一个接口,怎样实现接口,却不知道怎样调用接口中的方法.今天就尝试着自己去写了一个创建数据层接口的示例:
首先,我们定义一个数据访问层类:
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 创建数据层接口所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复