C# 继承

wenhui118 2013-10-29 08:47:00
我写了几个类,
第一个:

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);

}


...全文
395 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
wenhui118 2013-10-31
  • 打赏
  • 举报
回复
引用 5 楼 caozhy 的回复:
这里不应该用继承,应该用IoC框架作注入。 当然如果你仅仅完成课堂的练习,学习下继承这种语法怎么写那你就随意吧。
能不能请你按照我的想法,写个例子啊?谢谢!
threenewbee 2013-10-29
  • 打赏
  • 举报
回复
这里不应该用继承,应该用IoC框架作注入。 当然如果你仅仅完成课堂的练习,学习下继承这种语法怎么写那你就随意吧。
wenhui118 2013-10-29
  • 打赏
  • 举报
回复
我是要实现同一个业务系统,多数据库的形式? 有点类似于用友的U8,多帐套,多个数据库。
  • 打赏
  • 举报
回复
晕死,你的这个 AjaxDataHandle 类型里边都是什么代码啊? 我竟然胡乱抄了你的这个代码。唉。 你可以看看什么SqlHelper之类的。人家直接给个sql语句,就能返回List<AjaxDataHandler>集合了。有了SqlHelpler,还用得着这种费劲的什么DAL代码?
  • 打赏
  • 举报
回复
业务实体不要跟不要关系数据库纠结在一起,应该分开。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);
         
      }
这种元数据配置方式。 基本上没有谁让每一个实体对象来返回数据库名的。
Andy__Huang 2013-10-29
  • 打赏
  • 举报
回复
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;
	}
 }

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧