我的系统想分为三层结构,在写逻辑层时,看到有的资料介绍是要把它设计成对数据库操作的
不可再分的原子结构。所以我就想把对每张表的添加、删除、筛选、更新等都放在这里用方法实现,可是每张表的结构不同,每次操作的字段也不同,所以想请教各位前辈一下,您们的数据层是如何设计的,希望能给个例子,谢谢!
不可再分的原子结构。所以我就想把对每张表的添加、删除、筛选、更新等都放在这里用方法实现,可是每张表的结构不同,每次操作的字段也不同,所以想请教各位前辈一下,您们的数据层是如何设计的,希望能给个例子,谢谢!
解决方案 »
- 怎么调用父类中的方法
- firefox中是否能用javascript调用当前嵌入网页的PDF文件的打印功能?
- C#的WebService项目,未能加载文件或程序集“CLR_RS_NLP.DLL”或它的某一个依赖项,找不到指定的模块。
- IIS发布问题 急!急!急!
- 简单的问题
- 如何用验证控件验证一个网址格式是否合法?
- 如何在1.aspx.cs中获取2.ascx.cs中的<asp:TextBox id="txtbx1" runat=server>的txtbx1.text值?
- 我的Session_Start怎么在访问应用WEB程序的每个页面都被调用?
- 请问在Datalist里这么做联接,并要传参数?
- EF查询数据 偶尔报错
- .net里插入Flash的问题。只有10分了。有明白大哥当是做善事了。。
- vs2005的问题:gridview中添加了一个删除按钮,DeleteText设为“删除”,但发布到服务器后却显示为“Delete”?
它展示的是一个面向对象的编程风格而已。怎么做,你觉得方便就好。每个表的结构不通,但都能统一在表TableName, 字段Field, 查询条件Condition, 排序字段OrderBy,排序类型,这几个对象模型里面。就象每个人都不一样,但都能统一到手脚眼鼻等等里
比如我有两张表:user,news,我需不需要为每张表都写四个方法实现添加、删除、筛选、更新,还是写个比较统一的方法然后参数里面加上表名;还有就是当操作字段不同时,等等。希望前辈们,能给出个具体的数据层操作的方法的小例子给看看,写个意思就行,我自己也能写,但是想看看有经验的前辈的写得比较规范、合理的方法。实在感谢!
[Serializable]
public class TBSystemUser:ObjectExtion
{
public TBSystemUsert(){}
public TBSystemUser(SerializationInfo info, StreamingContext context)
{
//****序列化处理
Deserialize(info, context);
} public string UserCode
{
get{
if(GetValue("UserCode")!=null && GetValue("UserCode").ToString()!="")
{return GetValue("UserCode");}
else{return "";}
}
set{
SetValue("UserCode",value);
}
}
}
//****数据处理层
publi class RuleArivateData
{
private TBSystemUser mItem; public RuleArivateData()
{
mItem=new TBSystemUser ();
}
public TBSystemUser Item
{get{return mItem;}
set{mItem=value;}
public DbParamter SQLdbParamter(DbParamterEnumType EnumType)
{
DbParamter dbParamter=new DbParamter(); switch(EnumType)
{
case DbParamterEnumType.Insert://新增
dbParamter.CommandText="Proc_SystemUser_Insert";
dbParmter.CommnadType=CommandType.SortProduct
dbParamter.ProcParamter="@UserCode,@UserName";
break; }
dbParamter.add("UserCode",mItem.userCode,30);
dbParamter.add("UserName",mItem.UserName,50);
return dbParamter;
}
}//****数据传输层//****表示层 }
public bool updata(string tablename,string ps,string values)
{
string str="updata" + tablename + "set (" + ps + ") values (" + values +")";
SqlDataAdapter da =new SqlDataAdapter(conn);
da.UpdateCommand.CommandText=str;
da.UpdateCommand.ExecuteNonQuery();
return true;
}调用时:
updata("user","name,psd,role","'lxw','123','admin'")我不知道我这样写和不合理?谢谢前辈们!
BaseClass 是基类
BLLAdminModelAdd是BLL层的类
DALAdminModelAdd是DAL层的类流程这样比较漂亮,我认为而已BLLAdminModelAdd类中
public void Add(ModelInfo model)
{
using (TopWin.Common.BaseClass base1 = new TopWin.Common.BaseClass())
{
new DALAdminModelAdd ().Add(model, base1);
CommonClass.MsBox("添加成功", "Admin_Model.aspx");
}
}
DALAdminModelAdd类中
public void Add(ModelInfo model, BaseClass MyBase)
{
MyBase.MyExecuteNonQuery("TopWinBBS_AdminModelEdit",arrParameter);
}
WebUIModelInfo info1 = new ModelInfo();
info1.Name = Model_Name.Text;
info1.Top = Top.Text;
info1.Foot = Foot.Text;
info1.Index = Index.Text;
info1.Board = Board.Text;
new BLLAdminModelAdd ().Add(info1);
则写成:
public userData{
private string m_username;
public string UserName{
get{.....} }
}
则写成:
public userData{
private string m_username;
public string UserName{
get{.....} }
}哪不是要有多少表写多少个类?
net205(向MVP学习!) :http://blog.csdn.net/huhong81312/archive/2005/07/17/427618.aspx这里有个反射的例子,不过和这个问题中的我说的反射不同,但是总的来说都是大同小意。
不是有多少个表就写多少个类,是写实体类
——这位兄弟说得言简意赅,跟我要表达的意思相似,支持。