三层的学习已接触四五个月了,最早是在学习VB.NET视频中开始接触的,那时候跟着视频敲了两个例子。再后来,个人机房重构的时候,从三层进步到了七层,此后就觉得我们不能仅仅局限于三层之上。
不过,那些都是C/S模式之下的编程。到现在,接触了B/S模式也一个多月了,第一个牛腩新闻发布系统觉得很是有趣,还是从最基本的开始,下面就一起看看B/S模式下,三层是怎样应用的。这篇博客就以添加新闻的实例来总结。
对于三层的整个过程大家都是很熟悉的了,那么在这里就不再赘述了,直接一层一层来分析。
一.思路整理。
U层:给参数赋值,实例化B层添加新闻的方法,最后做出相应的提示。
B层:实例化D层的添加新闻的方法。
D层:利用SQLHelper,执行有参数的增加操作。
二.编写代码
U层:
protected void btnAdd_Click(object sender, EventArgs e) { //给参数赋值 string title = txtTitle.Text.Trim(); string content = ftbContent.Text.Trim(); string caid = ddlCategory.SelectedValue; //实例化新闻实体类 News n = new News(title, content, caid); //实例化B层添加新闻方法 bool b = new NewsManager().Insert(n); //进行相应的判断并提示 if (b) { Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('新闻添加成功!');</script>"); } else { Page.ClientScript.RegisterStartupScript(Page.GetType(), "message", "<script language='javascript' defer>alert('新闻添加失败,请联系管理员!');</script>"); } // 清空标题和内容 txtTitle.Text = ""; ftbContent.Text = ""; }
B层:
public bool Insert(News n) { return ndao.Insert(n); } D层: public bool Insert(News n) { //TODO:增加新闻 bool flag = false; string cmdText = "news_insert"; //实例化参数 SqlParameter[] paras = new SqlParameter[] { new SqlParameter ("@title",n.Title ), new SqlParameter ("@content",n.Content ), new SqlParameter ("@caid",n.CaId ) }; //执行有参数的增加新闻的存储过程 int res = sqlhelper.ExecuteNonQuery(cmdText, paras, CommandType.StoredProcedure); if (res > 0) { flag = true; } return flag; }
以上都是和我们C/S模式下相同的地方,若是C/S模式下,这也就完工了。而B/S模式下,我们还需要进一步对前台网页进行设计。下面就都是对网页设计需要进行的相应的操作: 这部分的代码都比较简单,只是因为第一次接触,可能都觉得陌生。这里就简单解释几个代码段的含义:
1.<--添加网页标题--> <%@ Page Title="添加新闻_后台管理_牛腩新闻发布系统"> 2.<--显示标题--> <h3>添加新闻</h3>
注:h1、h2、h3、h4、h5及h6标签的作用是显示标题(这里的h是“标题(heading)”的意思)。其中h1是一级标题,字体最大;h2是二级标题,字体比一级标题略小;而h6是六级标题,它是最后一级标题,字体也最小。
3.<--新闻分类下拉列表控件设置--> <p> 新闻分类:<asp:DropDownList ID="ddlCategory" runat="server" DataSourceID="SqlDataSource1" DataTextField="name" DataValueField="name"></asp:DropDownList> <asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:newssystemConnectionString %>" SelectCommand="SELECT [name] FROM [category]"></asp:SqlDataSource> </p> 4.<--新闻标题文本框控件设置--> <p>新闻标题:<asp:TextBox ID="txtTitle" runat="server" CssClass="newstitle"></asp:TextBox></p> 5.<--新闻内容外部控件设置--> <p>新闻内容:</p> <p> <FTB:FreeTextBox Text="" Language="zh-CN" ToolbarStyleConfiguration="OfficeMac" ID="ftbContent" Width="500" Height="200" runat="server"> </FTB:FreeTextBox> </p>
注:标签<p>里的p是“段落(paragraph)”的意思,也就是一个文本段落。 前台设计好后,我们就可以通过浏览器看到此部分了:
学习心得: 虽然学习了三层很长时间,但换一种模式,又发现了许多新鲜的东西,这也正好激发了自己学习的兴趣。同样,我们的学习还是需要积累,B/S的学习继续。。
原文地址:http://blog.csdn.net/hu_zhiting/article/details/45481293