在Web窗体页中向用户传送数据
在Web窗体页中可以用多种方式访问数据,下面我们要介绍一个基本的数据访问方案,核心过程是创建一个数据集,以便将信息从数据库读入该数据集中,并要将DataGridWeb服务器控件绑定到数据集以显示数据。
这个数据访问方案可分解成若干过程,如下所示:
·创建Web应用程序项目和Web窗体页。
·创建并配置要绑定网格的数据集。这需要创建一个通过数据库填充数据集的查询。
·向窗体添加DataGrid控件,并将其绑定到数据。
·添加代码来填充数据集。
1创建项目和窗体
我们首先要创建Web应用程序和Web窗体页。
2创建和配置数据集
下面我们将创建一个数据集,可分为以下两个过程:
·使用向导创建数据适配器。该适配器包含用于读取和写入数据库信息的SQL语句。该向导帮助我们定义所需的SQL语句。如有必要,该向导还可创建与数据库的连接。
·生成数据集架构。我们将让VisualStudio基于正在访问的表和列创建一个新的数据集类。在生成数据集类时,将向窗体中添加该类的一个实例。
配置数据连接和数据适配器
1.从“工具箱”的“数据”选项卡中,将OleDbDataAdapter对象拖到窗体上。此时,启动“数据适配器配置向导”,以帮助我们创建数据连接和数据适配器。
2.在“数据适配器配置向导”向导中,执行下列操作:
·在第二个窗格中,创建或选择一个指向SQLServerNorthwind数据库的连接。
·在第三个窗格中,指定要使用SQL语句访问的数据库。
·在第四个窗格中创建以下SQL语句:
SELECT CategoryID,CategoryName,Description FROM Categories
·单击“完成”按钮。向导创建了一个连接(OleDbConnection1),它包含有关如何访问数据库的信息。我
们还将具有一个包含查询的数据适配器(OleDbDataAdapter1),该查询定义要访问的数据库中的表和列。向导完成后,基于在该过程中创建的SQL查询生成数据集。
创建数据集
1.执行“数据”|“生成数据集”命令,出现“生成数据集”对话框。
2.选择“新建”选项,将该数据集命名为dsCategories。在“选择要添加到数据集中的表”的列表中,应选择类别表。
3.选中“将此数据集添加到设计器”选项,然后单击“确定”按钮。VisualStudio生成某类型化数据集类(dsCategories)和定义该数据集的架构,在解决方案资源管理器中可看到新的架构(dsCategories.xsd)。
在执行了与数据集有关的操作后,我们可以用一个DataGrid控件来显示其中的数据。
3添加DataGrid以显示数据
1.从“工具箱”的“Web窗体”选项卡中,将DataGrid控件拖到页上。
2.在“属性”窗口的底部选择“自动套用格式”链接,并为网格选择预定义格式。
3.在DataSource属性中,选择DsCategories1作为数据源,将网格和数据集绑定为一个整体。
4.在DataMember属性中选择Categories。如果数据源包含多个可绑定的对象,则可以通过DataMember属性指定要绑定到哪个对象。设置这两个属性会将DsCategories1数据集中的类别数据表绑定到网格。
4填充数据集并在DataGrid控件中显示数据
由于数据集本身不会被自动填充,因此需要调用数据适配器方法来填充数据集,又因为必须将网格显式绑定到数据集的数据源,因此必须执行以下步骤:
1.双击当前页,在代码编辑器中显示该页的类文件。
2.在Page_Load事件处理程序中,调用数据适配器的Fill方法并向其传递要填充的数据集。如下所示:
OleDbDataAdapter1.Fill(DsCategories1)
3.调用DataGrid控件的DataBind方法,将该控件绑定到数据集。我们不需要重新填充数据集并将网格与每个往返过程绑定。一旦DataGrid控件被填充数据之后,每次发送页时,都在视图状态中保留其值。因此,我们只需要在第一次调用页时填充数据集并绑定网格。我们可以使用页的IsPostBack属性对此进行测试。
完整的处理程序如下所示:
//C#
privatevoidPage_Load(objectsender,System.EventArgse)
{
//Putusercodetoinitializethepagehere
if(!IsPostBack)
{
oleDbDataAdapter1.Fill(dsCategories1);
DataGrid1.DataBind();
}
}
5测试Web窗体页
1.保存页。
2.在“解决方案资源管理器”中,右击Web窗体页并选择“在浏览器中查看”命令。确认网格中显示了类别列表。