在ASP.NET系统中,页面显示层即是ASPX页面的实现。本例中,首先添加一个新的ASPX页面CategoryQuery.aspx,然后在页面上添加以下控件。
(1)一个标签,ID默认,Text为“货物编号”。
(2)一个输入框,ID为“TextBoxCategoryID”。
(3)一个按钮,ID为“ButtonQuery”,Text为 “查询”。
(4)一个标签,ID为“LabelCategoryInfo”,Text为空。
页面控件的布局如图19.8所示。
双击“查询”按钮,在其单击事件中,输入如下代码。
代码19-13 “查询”按钮单击事件:DataAccessLayer/Database.cs
1. /// <summary>
2. /// 用户单击“查询”按钮时,调用QueryData方法,查询数据
3. /// 根据用户输入的CategoryID,查询相应的货物种类数据
4. /// </summary>
5. private void ButtonQuery_Click(object sender, System.EventArgs e)
6. {
7. //获取用户输入的货物编号
8. int categoryID=-1;
9. if(TextBoxCategoryID.Text!="")
10. categoryID=Convert.ToInt32(TextBoxCategoryID.Text);
11.
12. //利用Category的LoadData类,查询货物
13. Category category=new Category();
14. category.LoadData(categoryID);
15.
16. //显示货物详细信息
17. LabelCategoryInfo.Text="编号:"+category.CategoryID;
18. LabelCategoryInfo.Text+="<br>名称:"+category.CategoryName;
19. LabelCategoryInfo.Text+="<br>描述:"+category.Description;
20. }
代码的功能为:根据用户在输入框中输入的编号,使用逻辑层Category类的LoadData()方法,查询货物分类的详细信息,并通过标签LabelCategoryInfo的Text属性显示出来。
第7~10行获取了用户的输入,此处,没有做用户输入数据的合法性检查,读者可以利用验证控件进行完善。
第12~15行使用了Category类的LoadData()方法,根据用户的输入,查询了货物种类的详细信息。
第16~19行利用货物的属性,输出货物的详细信息。
编译运行后,效果如图19.9所示。
至此,一个最简单的三层体系结构的ASP.NET Web应用就完成了,此处对本例做一个简单的总结,可以看出,NorthWind包含三个层次。
(1)数据访问层:包含类Database,具有根据SQL获取数据集的方法GetDataSet()。
(2)业务逻辑层:包含类Category,具有根据货物种类编号获取详细信息的方法LoadData(),在方法的实现中,使用了Database的GetDataSet()方法。
(3)页面显示层:包含页面CategoryQuery.aspx,核心查询按钮的实现调用了Category类的LoadData()方法。
在此基础之上,读者可以进行更为详细的完善,使NorthWind具有更丰富的功能。例如:
(1)根据货物名称模糊查询货物相信信息;
(2)用DataGrid显示全部货物信息;
(3)添加、删除和修改货物信息。