您的位置:首页 > 编程语言 > C#

c#接口的定义与实现

2013-04-18 15:35 477 查看
http://www.cnblogs.com/jiajiayuan/archive/2011/09/16/2178462.html
http://www.cnblogs.com/ben-zhang/archive/2012/12/18/2823455.html C# code

?
using System;
using System.Collections.Generic;
using System.Text;
using Galsun.HH.FCX.Mode;
using System.Reflection;

namespace Galsun.HH.FCX.DALFactory
{

public interface Iba_county
{
ba_countyinfo GetInfoByID(string cond);
ba_countyinfo GetInfoByID(string cond, ba_countyinfo param);
IList<ba_countyinfo> GetInfoList(int pageindex, int pagesize, string ordfid, string cond);
IList<ba_countyinfo> GetInfoList(int pageindex, int pagesize, string ordfid, string cond, ba_countyinfo param);
int GetRowCount(string cond);
int GetRowCount(string cond, ba_countyinfo param);
int Create(ba_countyinfo info);
int Update(ba_countyinfo info, string cond);
int Delete(string cond);
int Delete(string cond, ba_countyinfo param);
}

public sealed partial class DataAccess
{
/// <summary>
/// 获取ba_county相应接口
/// </summary>
/// <returns></returns>
public static Iba_county CreateIba_county()
{
string className = path + ".ba_county";
return (Iba_county)Assembly.Load(path).CreateInstance(className);
}
}
}


然后是实现

C# code

using System;
using System.Collections.Generic;
using System.Text;
using Galsun.DALProfile;
using Galsun.HH.FCX.DALFactory;
using Galsun.HH.FCX.Mode;
using System.Reflection;

namespace Galsun.HH.FCX.DALSQLServer
{

/// <summary>
///
///
/// </summary>
public class ba_county:Iba_county
{
private DBTool dal = new DBTool();
/// <summary>
/// 根据条件获取信息
/// </summary>
/// <param name="cond">栓索条件</param>
/// <returns></returns>
public ba_countyinfo GetInfoByID(string cond)
{
string _cond = cond == null ? "" : cond;
if (_cond.Length>0 && !_cond.ToLower().Contains("where"))
_cond = " where " + _cond;

string query = string.Format("Select top 1 * From [ba_county] {0}", _cond);
Type type = Assembly.Load("Galsun.HH.FCX.Mode").CreateInstance("Galsun.HH.FCX.Mode.ba_countyinfo").GetType();
return dal.GetModelList<ba_countyinfo>(query, type);
}
/// <summary>
/// 根据条件获取信息
/// </summary>
/// <param name="cond">检索条件</param>
/// <param name="param">SQL形参参数</param>
/// <returns></returns>
public ba_countyinfo GetInfoByID(string cond, ba_countyinfo param)
{
string _cond = cond == null ? "" : cond;
if (_cond.Length>0 && !_cond.ToLower().Contains("where"))
_cond = " where " + _cond;

string query = string.Format("Select top 1 * From [ba_county] {0}", _cond);
Type type = Assembly.Load("Galsun.HH.FCX.Mode").CreateInstance("Galsun.HH.FCX.Mode.ba_countyinfo").GetType();
return dal.GetModelList<ba_countyinfo>(query, dal.SetValueParam(param), type);
}
/// <summary>
/// 获取信息列表
/// </summary>
/// <param name="pageindex">分页索引</param>
/// <param name="pagesize">页面大小</param>
/// <param name="ordfid">排序字段(必须的)</param>
/// <param name="cond">检索条件</param>
/// <returns></returns>
public IList<ba_countyinfo> GetInfoList(int pageindex, int pagesize, string ordfid, string cond)
{
Type type = Assembly.Load("Galsun.HH.FCX.Mode").CreateInstance("Galsun.HH.FCX.Mode.ba_countyinfo").GetType();
return dal.GetModelList<ba_countyinfo>("[ba_county]", pageindex, pagesize, ordfid, cond, type);
}
/// <summary>
/// 获取信息列表
/// </summary>
/// <param name="pageindex">分页索引</param>
/// <param name="pagesize">页面大小</param>
/// <param name="ordfid">排序字段(必须的)</param>
/// <param name="cond">检索条件</param>
/// <param name="param">SQL形参参数</param>
/// <returns></returns>
public IList<ba_countyinfo> GetInfoList(int pageindex, int pagesize, string ordfid, string cond, ba_countyinfo param)
{
Type type = Assembly.Load("Galsun.HH.FCX.Mode").CreateInstance("Galsun.HH.FCX.Mode.ba_countyinfo").GetType();
return dal.GetModelList<ba_countyinfo>("[ba_county]", pageindex, pagesize, ordfid, cond, dal.SetValueParam(param), type);
}
/// <summary>
/// 获取记录数
/// </summary>
/// <param name="cond">检索条件</param>
/// <returns></returns>
public int GetRowCount(string cond)
{
return dal.GetRowCount("[ba_county]", cond);
}
/// <summary>
/// 获取记录数
/// </summary>
/// <param name="cond">检索条件</param>
/// <param name="param">SQL形参参数</param>
/// <returns></returns>
public int GetRowCount(string cond, ba_countyinfo param)
{
return dal.GetRowCount("[ba_county]", cond, dal.SetValueParam(param));
}
/// <summary>
/// 创建记录
/// </summary>
/// <param name="info"></param>
/// <returns></returns>
public int Create(ba_countyinfo info)
{
string query = "Insert Into [ba_county]([cCountyCode],[cCountyName],[cMarketCode],[cDCCode],[OrderID]) "
+ "values (@cCountyCode,@cCountyName,@cMarketCode,@cDCCode,@OrderID)";

return dal.ExecuteNonQuery(query, dal.SetValueParam(info));
}
/// <summary>
/// 修改记录
/// </summary>
/// <param name="info"></param>
/// <returns></returns>
public int Update(ba_countyinfo info, string cond)
{
string _cond = cond == null ? "" : cond;
if (_cond.Length>0 && !_cond.ToLower().Contains("where"))
_cond = " where " + _cond;
string query ="Update [ba_county] Set  [cCountyCode]=@cCountyCode, [cCountyName]=@cCountyName, [cMarketCode]=@cMarketCode, [cDCCode]=@cDCCode, [OrderID]=@OrderID"
+ _cond ;
return dal.ExecuteNonQuery(query, dal.SetValueParam(info));
}
/// <summary>
/// 删除记录
/// </summary>
/// <param name="cond">检索条件</param>
/// <returns></returns>
public int Delete(string cond)
{
string _cond = cond == null ? "" : cond;
if (_cond.Length>0 && !_cond.ToLower().Contains("where"))
_cond = " where " + _cond;
string query = string.Format("DELETE From [ba_county] {0}", _cond);
return dal.ExecuteNonQuery(query, null);
}
/// <summary>
/// 删除记录
/// </summary>
/// <param name="cond">检索条件</param>
/// <param name="param">SQL形参参数</param>
/// <returns></returns>
public int Delete(string cond, ba_countyinfo param)
{
string _cond = cond == null ? "" : cond;
if (_cond.Length>0 && !_cond.ToLower().Contains("where"))
_cond = " where " + _cond;
string query = string.Format("DELETE From [ba_county] {0}", _cond);
return dal.ExecuteNonQuery(query, dal.SetValueParam(param));
}
}
}


这里需要注意, ba_county必需要完成Iba_county中所定义的所有方法

最后是业务逻辑层的调用接口进行编程

namespace Galsun.HH.FCX.Content
{
/// <summary>
/// 县区管理
/// </summary>
public class County
{
Iba_county icounty = DataAccess.CreateIba_county();
/// <summary>
/// 创建县区档案
/// </summary>
/// <param name="info"></param>
/// <returns></returns>
public bool Create(ba_countyinfo info)
{

if (icounty.Create(info) > 0)
{
clearCache();
return true;
}
return false;
}
......


这样做能就达到Content和DALSQLServer同步进行,分工合作
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: