网站链接: 环球网校培训
当前位置: 首页 > 资讯动态  > 平台资讯

ASP.NET 2.0 中的数据源控件(二)

2025/12/29 23:07:38 人评论

SqlDataSource 示例


既然我已经完成了概述,那么我将对使用 SqlDataSource 和 ObjectDataSource 来检索和修改数据进行一下对比。SqlDataSource 控件(它使用 ADO.NET 2.0 DbProviderFactory 对象)具有将它直接链接到 OLE DB 或 ODBC 数据源的属性。当加载包含链接到 SqlDataSource 的数据绑定控件的 ASP.NET 页时,SqlDataSource 直接与基础数据库进行通信。因而,SqlDataSourceData 源控件不与现有的业务对象集成。

为了查看 SqlDataSource 是如何操作的,让我们先观察一下 Orders_SDS.aspx 页。有一个 DropDownList 控件,它绑定到一个从 Northwind 数据库中检索客户列表的 SqlDataSource 源控件。


还有另外一个名为 sdsOrdrsDataSource 的 SqlDataSource,它用于检索选定客户的所有订单显示了两个 SqlDataSource 控件和这个 DropDownList。请注意,sdsOrdersDataSource SqlDataSource 控件使用 DropDownList 的选定值作为其存储过程的参数(prGet_Orders 的参数)。

ProviderName 和 ConnectionString 属性的组合告诉 SqlDataSource 控件从哪个数据存储中获得数据。尽管这些属性使 SqlDataSource 成为检索和修改数据的简单解决方案,但遗憾的是,它们在表示层的 ASPX 文件中公开了数据库连接字符串以及 SQL 语句或存储过程。这通常不是一个好主意。将该数据以加密形式存储在配置储存库(如配置文件或注册表)中要安全得多。

图 4 显示了编辑模式下的 Orders_SDS.aspx 页。分页由 GridView 自动实现(通过将 GridView AllowPaging 属性设置为 true,并将 PageSize 属性设置为期望的大小,)。这将告诉网格将其中的行分页,并且在“下一页”或“上一页”链接被单击时自动重新加载网格和页。GridView 使用 TextBox 控件显示选定行的可编辑列。数据绑定列是通过 asp:BoundField 或 TemplateField 元素定义的。通过设置 DataField 属性,可以将 BoundField 绑定到 GridView 的关联数据源:

<asp:BoundField HeaderText="ShipCity" DataField="ShipCity"
    SortExpression="ShipCity"></asp:BoundField>
这将告诉 GridView 控件,当它处于查看模式时,应该在 span 元素中显示 ShipCity 值。当 GridView 处于编辑模式时,选定行中的这一列将在适当的 HTML 元素中显示。在这种情况下,HTML 元素为 TextBox,因为它是一个字符串值。该元素是基于绑定列的数据类型选择的。例如,如果该列在 SQL Server 中被定义为位,则将使用 CheckBox 控件在编辑模式下显示该列。

TemplateField 元素在绑定列的行为方式方面提供了更大的灵活性。请观察以下摘自 Orders_SDS.aspx 页的代码示例:

<asp:TemplateField SortExpression="OrderDate" HeaderText="OrderDate">
    <ItemTemplate>
        <asp:Label ID="lblOrderDate_Item" Runat="server"
            Text=''<%# Bind("OrderDate", "{0:d}") %>''></asp:Label>
    </ItemTemplate>
    <EditItemTemplate>
        <asp:TextBox ID="txtOrderDate_Edit" Runat="server"
            Text=''<%# Bind("OrderDate", "{0:d}") %>''></asp:TextBox>
    </EditItemTemplate>
</asp:TemplateField>
 
当 GridView 处于查看模式时,它使用 TemplateColumn 在 Label 控件中显示 OrderDate 列;当 GridView 处于编辑模式时,它使用 TemplateColumn 在 TextBox 控件中显示 OrderDate 列。您还可以使用 FooterTemplate 来告诉 Template 列在页脚中以不同的方式显示该列。还可以使用 HeaderTemplate、AlternatingItemTemplate 甚至 InsertItemTemplate。还请注意 ASP.NET 2.0 中引入的简化的绑定语法。OrderDate 的值是通过调用 Bind 表达式并向它传递 GridView 的关联数据源中列的名称和一个可选的数据格式字符串表达式来设置的。在该示例中,我使用了表示短日期的数据格式字符串。这些属性都可以通过可借助于 Visual Studio 2005 中的新增智能标记功能访问的属性来轻松设置。

ObjectDataSource
GridView 和其他数据绑定控件的最出色的功能之一是,在设置了它们以后,只需更改单个属性,就可以将它们绑定到 ObjectDataSource 控件

相关资讯

  • 2018小程序电商行业报告:用户规模将破5亿,社交玩法促进成单量

    OMO时代已来,小程序将会是最重要的工具。差不多两周前,新榜推送了这篇文章《“一条”“日日煮”抢先入局,内容创业迎来OMO时代?| 新榜观察》,在趋势层面探讨了一个现象,去线下开店似乎正成为潮水的方向。比如,刚拿到C+轮融资的“一条”,宣布未来两年要开100家线下…

    2025/12/29 23:07:38
  • 超2000个小程序被封,押注在这里的7亿多资金风险有多高?

    小程序发布一年后,微信开始了大清理。近日,微信宣布永久封禁976个假货、高仿,数百个“色情、低俗”类,及1000多个现金贷小程序。在此之前,就有头脑王者、荔枝微课、千聊被封,目前,后两者已经解封,但头脑王者还在关闭中。据娱乐资本论旗下剁椒娱投了解,千聊发布了…

    2025/12/29 23:07:38
  • 微信小程序认证有哪些主体类别?

    微信小程序在申请过程中,微信要求所有的小程序都要进行主体登记。那么,对于个体工商户来说,应该选择哪种主体类型进行登记?今天,就来为你详细解析一番。1.微信小程序有哪些主体类别?目前,可以登记注册微信小程序的主体类别,有以下几种:个人企业(包括个体工商户)…

    2025/12/29 23:07:38
  • APP五网合一让手机APP的客量倍增

    APP五网合一让手机APP的客量倍增?如今,不少商家都亟需开发自己的App。有想要扩充购买渠道的,有拥有忠实客户需要提供便捷入口的,还有一些门店商家,需要通过独App,树立品牌形象扩大影响力。  因为时代的驱动, 也给一大波的 外包企业开发公司带来很多的客源收益,深…

    2025/12/29 23:07:38

共有条评论 网友评论

验证码: 看不清楚?