在本演练中您将使用 Visual C# 或 Visual Basic 编写一个 Web 窗体应用程序然后集成一个为您提供 % 购买折扣的业务对象组件您将这个业务对象创建为一个 Visual C# 或 Visual Basic 类该类通过计算特定书籍的优惠价格来实现业务规则
创建 Web 应用程序项目
在本节中创建表示应用程序的用户界面的 Visual C# 或 Visual Basic Web 应用程序项目在 Web 窗体页上将放置 DataSetDataGrid 和 DataView 以查看数据库中的特定表
您还将在创建包含数据源的数据访问对象的位置添加组件
创建 Web 窗体
在文件菜单上单击新建然后单击项目
将出现新建项目对话框
在项目类型窗格中单击Visual Basic 项目或Visual C# 项目并在模板窗格中选择ASPNET Web 应用程序
通过更改位置框中的默认名称(如将//localhost/WebApplication 更改为//localhost/MyWebForm)将应用程序命名为 MyWebForm
单击确定按钮
应用程序向导将创建必要的项目文件包括下列文件
WebFormaspx — 包含 Web 窗体的可视化表示形式
WebFormaspxcs 或 WebFormaspxvb — 代码隐藏文件包含用于事件处理和其他编程任务的代码若要在解决方案资源管理器中查看此文件请单击显示所有文件图标然后展开 WebFormaspx 节点
Web 窗体文件
注意 如果解决方案资源管理器没有打开请在视图菜单上单击解决方案资源管理器
有关创建 Web 应用程序项目的更多详细信息请参见创建 Web 项目
添加组件
在解决方案资源管理器中右击项目名称
在快捷菜单上单击添加然后单击添加组件
出现添加新项对话框并且默认情况下将选中右窗格中的组件类
接受默认名称 (Component) 并单击打开
除非为组件选择其他名称否则这将在项目中创建名为 Componentcs 或 Componentvb 的新文件具体取决于应用程序语言组件设计器在 Componentcs 或 Componentvb 上打开设计视图
创建数据访问组件
数据集可以用于将数据值绑定到传输给客户端的 HTML它既可以在 Web 窗体本身也可以在组件上创建为模拟实际情况将在组件上创建它还将编写必要的代码以便用数据库中的数据填充数据集
添加和配置数据源
在视图菜单上单击工具箱
从工具箱的数据选项卡中将 sqlDataAdapter 拖到组件设计器表面
数据适配器配置向导出现
单击下一步前进到选择您的数据连接页然后单击新建连接
即会出现数据链接属性对话框
在数据链接属性对话框的连接选项卡中
输入安装了 pubs 数据库的服务器的名称
输入服务器的登录信息
从数据库列表中选择 pubs
单击测试连接按钮测试数据链接
单击确定返回到向导
数据连接的名称出现在下拉列表中
注意 如果不知道 SQL Server pubs 数据库的用户名和密码请与数据库管理员联系
数据链接属性
单击下一步前进到选择查询类型页
选择使用 SQL 语句然后单击下一步
在生成 SQL 语句页中单击查询生成器
在添加表对话框的表选项卡中单击titles单击添加然后单击关闭
这将titles表添加到 SQL 查询中
在查询生成器对话框中如下图所示选择title_idtitlepricenotes和pubdate复选框然后单击确定生成 SQL 语句并返回到数据适配器配置向导
查询生成器
生成 SQL 语句页显示生成的 SQL 语句
单击完成退出数据适配器配置向导并将数据源连接到titles表将下列对象添加到组件设计器表面
sqlDataAdapter
sqlConnection
另一种方法是可以使用服务器资源管理器同时创建 sqlDataAdapter 和 sqlConnection 对象为此展开SQL Server树以显示服务器pubs 数据库和 titles 表如下图所示展开 titles 并选择所需要的列然后将它们拖到组件设计器表面
服务器资源管理器
可以在 Componentcs 文件的 InitializeComponent 方法(或 Componentvb 文件的 InitializeComponent 子例程)中查看生成的代码为此通过在解决方案资源管理器中右击 Componentcs(或 Componentvb)切换到代码视图然后在快捷菜单中单击查看代码
单击文件菜单上的全部保存保存项目
生成和填充数据集
如果组件设计器不可见则请在解决方案资源管理器中双击文件 Componentcs(或 Componentvb)
从数据菜单中单击生成数据集
生成数据集对话框出现
如果新建单选按钮尚未选定请选定它在对应的文本框中输入名称如 myDataSet
确保未选中将此数据集添加到设计器复选框并单击确定
文件 myDataSetxsd 出现在解决方案资源管理器中
如果在解决方案资源管理器中双击 myDataSetxsd可查看描述 myDataSet 的 XML 架构和代码注意数据集和XML选项卡位于 XML 设计器表面的左下角
数据集架构
绑定 DataGrid
在本节中将向 Web 窗体页添加数据集用数据填充它并将其绑定到 DataGrid
向窗体添加数据集
在解决方案资源管理器中双击文件 WebFormaspx 以选择 Web 窗体页
在视图菜单上单击工具箱
将一个 DataSet 从工具箱的数据选项卡拖到 Web 窗体设计器表面
出现添加数据集对话框
如果尚未选中TypedDataSet请选中它
从下拉列表中选择数据集的名称 (MyWebFormmyDataSet) 并单击确定
这将数据集 myDataSet 添加到 Web 窗体设计器表面的非可视部分
添加数据集
用数据填充数据集
在解决方案资源管理器中右击 Componentcs(或 Componentvb)然后从快捷菜单中选择查看代码切换到组件代码视图
将下列方法(或子例程)添加到 Component 类如下所示
// C#
public class Component : SystemComponentModelComponent
{
// Add the following code:
public void FillDataSet(myDataSet dSet)
{
sqlDataAdapterFill(dSet);
}
// End of the new code
}
Visual Basic
Public Class Component
Inherits SystemComponentModelComponent
Add the following code:
Public Sub FillDataSet(ByVal dSet As myDataSet)
sqlDataAdapterFill(dSet)
End Sub
End of the new code
End Class
通过在解决方案资源管理器中右击文件 WebFormaspx然后从快捷菜单中选择查看代码来切换到 Web 窗体代码视图
这将打开代码隐藏文件即 WebFormaspxcs(或 WebFormaspxvb)
在 WebForm 类中的顶层声明一个组件对象如下所示
// C#
public class WebForm : SystemWebUIPage
{
// Add the following line:
protected Component myComponent = new Component();
Visual Basic
Public Class WebForm
Inherits SystemWebUIPage
Add the following line:
Protected myComponent As New Component
修改 Page_Load 方法(或 Page_Load 子例程)以调用 FillDataSet()如下所示
// C#
private void Page_Load (object sender SystemEventArgs e)
{
// Add the following code:
if (! IsPostBack)
{
myComponentFillDataSet(myDataSet);
}
// End of the new code
}
Visual Basic