【问题标题】:Declarative databinding vs. ADO.NET in code-behind代码隐藏中的声明性数据绑定与 ADO.NET
【发布时间】:2011-07-16 06:06:02
【问题描述】:

在最近尝试理解 ASP.NET GridView 时,我看到 mst 示例使用了直接在 ASPX 标记中声明的数据源。比如……

<asp:SqlDataSource ID="productDataSource" Runat="server" 
 SelectCommand="SELECT [ProductName], [UnitPrice], 
 [UnitsInStock], [QuantityPerUnit] FROM [Products]"
    ConnectionString=
    "<%$ ConnectionStrings:NWConnectionString %>">
</asp:SqlDataSource>

我见过很多这种声明性数据源,而不是我被教导(并且个人更喜欢)使用 ADO.NET 访问数据然后在代码隐藏中设置控件数据源的方式。

在 ASPX 中使用这种新型数据源声明有什么好处?有什么好处和坏处?

【问题讨论】:

    标签: asp.net datasource


    【解决方案1】:

    进行数据绑定的声明方式的一个缺点是分页效率不高。 gridview 将从数据库中提取所有记录,然后它只会显示您的页面。如果您有 1,000,000 条记录,那将不会很快。自己绑定,只能拉取需要的记录。

    对于简单的小表来说,声明式的方式需要的开发时间更短,并且内置了分页和排序。

    对于我研究过的几乎所有真实世界的网格视图,构建数据集的查询的复杂性使得声明性方法不可行。

    【讨论】:

    • 此外,我发现维护这些是一种痛苦。我在一个项目中使用了这些,以后再也不会了。
    • 根据您的经验,即使需要一些“手动”编码,您是否只使用 DataGrid 控件?
    • 就我个人而言,我使用的是 gridview,但是 MS 有一个不错的差异列表来决定什么对你有用。 msdn.microsoft.com/en-us/library/05yye6k9.aspx
    【解决方案2】:

    声明式数据绑定在直接案例中很有用,当然也可以在学习和演示中使用。一旦您开始体验它,就立即切换到代码驱动的设计,这样可以省去您的痛苦。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-22
      • 2013-09-07
      • 2015-12-30
      • 1970-01-01
      • 2013-10-17
      • 2019-06-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多