2014年(9)
分类: C#/.net
2014-03-26 22:48:39
在ASP.NET 2.0中实现数据的绑定(二)
第五步:确定选择的数据库后,单击"确定"按钮,VS 2005将自动设置好你的连接字符串,本例的为"Data Source=hoowoo;Initial Catalog=pubs;Integrated Security=True"。在新弹出的窗口中点击"下一步"后,将得到如下窗口:
因为考虑到数据库的安全性能,所以我们希望可以通过其他方式来实现数据库连接字符串的信息隐藏。在这我们通过给连接字符串一个别名,并且将这个别名保存在Web.Config文件中。VS 2005会自动将别名和连接字符串进行映射,以实现数据库的连接。 第六步:单击"下一步"按钮后,将会出现如下窗口:
我们可以直接指定一个表格,选择其中的某些字段,单击"下一步"按钮后,就完成了整个的数据库配置过程。 执行该程序后,其页面显示如下:
现在我们来分析一下所生成的页面代码,查看代码可以在页面中右键选择"查看代码"项。
在本例中,DataGrid控件指定其"DataSourceID"属性为"SqlDataSource1",这样就建立了数据绑定控件和数据源控件之间的关联。 GridView 控件反映 SqlDataSource 返回的数据记录的字段以动态生成网格的列。通过向 GridView 的 Columns 集合添加 DataControlField 对象,还可以指定要显示的显式列字段。这样允许确切指定要显示的列以及它们的相对顺序。可分配给Columns集合的其他字段类型包括 ImageField、HyperLinkField、CommandField、ButtonField 和 TemplateField。 我们可以根据需要来选择这些字段类型。 SqlDataSource 的 ConnectionString 属性指定到数据库的连接字符串,SelectCommand 属性指定要执行以检索数据的查询。连接字符串可以在页中按字面文本指定,不过在此例中,该属性是采用一种新的语法方式在Web.Config来查询该连接字符串的实际值。 在本例中,Web.Config中的代码片段如下:
通过在Web.Config中添加一个""节点,就可以实现连接字符串与"name"属性指定的别名"Pubs"的映射。在 Web.config 中存储连接字符串是对任何 ASP.NET 应用程序的建议做法,这样不仅实现了程序的集中管理,而且保护了数据库连接字符串。在VS 2005中,我们可以使用 ASP.NET 2.0 中的一个命令行工具来加密此节点以实现进一步的安全性。 注意:SqlDataSource 控件并不仅限于连接到SQL Server 数据库。它实际上能够连接到被配置为 System.Data.Common.DbProviderFactory 的任何托管 ADO.NET 提供程序。默认情况下,.NET Framework machine.config 中包括四个提供程序:
SqlDataSource 的 ProviderName 属性可设置为任何有效提供程序工厂的固定名称(默认为 System.Data.SqlClient)。注意,如果更改提供程序名称,则需要确保 ConnectionString 和 SelectCommand 属性使用所选提供程序的正确语法。
我们还可以给SqlDataSource数据源控件的SelectCommand属性指定一个存储过程来替代一个SQL 命令,而且使用存储过程具有更大的灵活性。为了实现该功能,可以设置SqlDataSource数据源控件的SelectCommandType属性为"StoredProcedure". 现在我们就利用SQL Server自带的示例数据库Northwind的"TenMostExpensiveProducts"存储过程来实现一个只读报表。 该存储过程主要是在"Products"表中选择"ProductName"和"UnitPrice"两个字段,其代码如下:
create procedure "Ten Most Expensive Products" ASSET ROWCOUNT 10SELECT Products.ProductName AS TenMostExpensiveProducts, Products.UnitPriceFROM ProductsORDER BY Products.UnitPrice DESC
页面代码如下: