查找了一下关于“三层架构”的帖子,了解到三层是:表示层、中间层、数据层,却使我一头雾水。每次创建一个新窗体(比如WebForm1)系统都会生成3个文件:WebForm1.aspx、WebForm1.aspx.cs、WebForm1.aspx.resx我想问的是:我所做的程序都是在aspx.cs下写的C#代码(对数据库的检索,增删改),这些代码都是表示层的吗?如果是的话,那么中间层所实现的功能是什么?它的代码写在哪里?又保存在哪里呢?
另:aspx.resx里面的代码是做什么用的?
另:aspx.resx里面的代码是做什么用的?
private void Button2_Click(object sender, System.EventArgs e)
{
string str_bz="";
int i;
string str_n=DropDownList1.SelectedItem.ToString().Trim();
string str_y=DropDownList2.SelectedItem.ToString().Trim();
string str_r=DropDownList3.SelectedItem.ToString().Trim();
string str_riqi=str_n+"-"+str_y+"-"+str_r;
if(ModifyTime(str_riqi)=="0")
{
Label_mess.Text="提示:填写日期输入错误,请更正。";
return;
}
if(bz.Text!="")
{
i=sjcd(bz.Text.ToString().Trim(),100);
if(i==0)
{
Label_mess.Text="提示:反馈意见输入字数过长!";
return;
}
if(i==1)
str_bz=bz.Text.ToString().Trim();
}
string sql="select * from bz_table where dwm='"+Lb_dwm.Text.ToString().Trim()+"' and riqi='"+str_riqi+"' and lb='"+Label11.Text.ToString().Trim()+"'";
Open_conn();
SqlDataAdapter da1 = new SqlDataAdapter(sql,myConnection);
DataSet ds1 =new DataSet();
da1.Fill(ds1,"dwm");
myConnection.Close();
if(ds1.Tables["dwm"].Rows.Count==0)
{
string str_insert="insert into bz_table(dwm,riqi,bz,lb) values('"+Lb_dwm.Text.ToString().Trim()+"','"+str_riqi+"','"+str_bz+"','"+Label11.Text.ToString().Trim()+"')";
Open_conn();
myConnection.Open();
SqlCommand Com1=new SqlCommand(str_insert,myConnection);
Com1.ExecuteNonQuery();
myConnection.Close();
Page.RegisterStartupScript("", "<script language='javascript'>alert('"+"记录保存成功!"+"');</script>") ;
}
else
{
string str_update="update bz_table set bz='"+str_bz+"' where dwm='"+Lb_dwm.Text.ToString().Trim()+"' and riqi='"+str_riqi+"' and lb='"+Label11.Text.ToString().Trim()+"'";
Open_conn();
myConnection.Open();
SqlCommand Com2=new SqlCommand(str_update,myConnection);
Com2.ExecuteNonQuery();
myConnection.Close();
Page.RegisterStartupScript("", "<script language='javascript'>alert('"+"记录修改成功!"+"');</script>") ;
}
DataGrid1.CurrentPageIndex=0;
BindGrid();
}
严格来说cs文件不算中间层,简单的中间层可能只封装了一些业务逻辑,业务逻辑类再去调用数据访问层。复杂的可能包含一个企业架构在里面(中间件),那里面的东西就多了,比如事务处理、日志处理、权限处理等等。
比如一个查询
中间层应该就是 组织查询的sql语句 将sql语句传给数据层,然后数据层再返回一个结果集给中间层比如dataset
(表现层中)按扭事件仅仅传一些值(比如要增加的值)给中间层,然后中间层判断应该执行什么操作(增加还是修改),然后再将该操作的一个<值?>传给数据访问层,如果是增加,数据访问层再执行INSERT操作?如果是这样子,能不能给我一个简单的小程序代码(包括三层分别的代码),只要实现数据的录入就行(哪怕数据库里只有一个字段)。当然有这样的链接也行,谢谢!
同时谢谢各位的回答,使我长了不少见识(以前一直以为.NET就是那样做法)
明天给分:)晚安!http://www.microsoft.com/china/community/program/originalarticles/TechDoc/duwamish.mspx
我在看我朋友的代码,也是三层的,关联没有duwamish多,先看懂他的,然后再看duwamish。
表现层就是输入和输出的作用
数据层就是操作数据库的
业务逻辑层就说不好了,这个是难点