当前位置:编程学习 > C#/ASP.NET >>

C# 继承

我写了几个类,
第一个:

     public class AjaxDataHandle
     {
        ...
        DbOperator db= Factory.GetDbOperator();
        string sql="SELECT CLassId,ClassName FROM Class"
        DataTable dt=db.ExecRetDT(sql);
     }
第二个:

     public class AjaxStudentHandler
     {
        ...
        DbOperator db= Factory.GetDbOperator();
        string sql="SELECT CLassId,ClassName FROM StudentDossier"
        DataTable dt=db.ExecRetDT(sql);
     }

现在想写一个基类的形式,让以上都的两个类,都继承基类的一个属性DbName,这个值由Session获得,如何写?

这样做的目的是:以前写的方法都是针对一个数据库,现在想实现操作多个数据库的模式,就想着给每个方法添加一个数据库名称的变量。

最后达到的效果是:

     public class AjaxDataHandle: Base
     {
        string dbName=Base.DbName;
        DbOperator db= Factory.GetDbOperator(dbName);
        string sql="SELECT CLassId,ClassName FROM StudentDossier"
        DataTable dt=db.ExecRetDT(sql);
        
     }


继承 c# 类 --------------------编程问答--------------------
public abstract class BaseDB
{
public string DataBaseName {get;set;} 
public abstract void  GetName(string dbName)
{

}
}

 public class AjaxDataHandle: BaseDB
 {
public abstract void  GetName(string dbName)
{
this.DataBaseName=dbName;
}

public DataTable GetTableList(string sql)
{
    DbOperator db= Factory.GetDbOperator(this.DataBaseName);
    DataTable dt=db.ExecRetDT(sql);
return dt;
}
 }
--------------------编程问答-------------------- 业务实体不要跟不要关系数据库纠结在一起,应该分开。AjaxDataHandler类型的对象可以放到哪一个数据库中,或者是放到文件中,或者发个短信给中移动给你保存起来这个对象,都是无所谓的。

如果需要配置,那么也是Attribuet的事情。例如

     [DbName("AjaxTable1")]
     public class AjaxDataHandle
      {
         string dbName=Base.DbName;
         DbOperator db= Factory.GetDbOperator(dbName);
         string sql="SELECT CLassId,ClassName FROM StudentDossier"
         DataTable dt=db.ExecRetDT(sql);
         
      }


这种元数据配置方式。

基本上没有谁让每一个实体对象来返回数据库名的。 --------------------编程问答-------------------- 晕死,你的这个 AjaxDataHandle 类型里边都是什么代码啊?

我竟然胡乱抄了你的这个代码。唉。

你可以看看什么SqlHelper之类的。人家直接给个sql语句,就能返回List<AjaxDataHandler>集合了。有了SqlHelpler,还用得着这种费劲的什么DAL代码? --------------------编程问答-------------------- 我是要实现同一个业务系统,多数据库的形式?
有点类似于用友的U8,多帐套,多个数据库。 --------------------编程问答-------------------- 这里不应该用继承,应该用IoC框架作注入。

当然如果你仅仅完成课堂的练习,学习下继承这种语法怎么写那你就随意吧。 --------------------编程问答-------------------- 除 --------------------编程问答--------------------
引用 5 楼 caozhy 的回复:
这里不应该用继承,应该用IoC框架作注入。

当然如果你仅仅完成课堂的练习,学习下继承这种语法怎么写那你就随意吧。


能不能请你按照我的想法,写个例子啊?谢谢!
补充:.NET技术 ,  ASP.NET
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,