在ASP.NET 2.0中实现数据的绑定(3)

发表于:2007-06-30来源:作者:点击数: 标签:
第五步:确定选择的 数据库 后,单击"确定"按钮,VS 2005将自动设置好你的连接字符串,本例的为"Data Source=hoowoo;Initial Catalog=pubs;Integrated Security=True"。在新弹出的窗口中点击"下一步"后,将得到如下窗口: 因为考虑到数据库的 安全 性能 ,所
     第五步:确定选择的数据库后,单击"确定"按钮,VS 2005将自动设置好你的连接字符串,本例的为"Data Source=hoowoo;Initial Catalog=pubs;Integrated Security=True"。在新弹出的窗口中点击"下一步"后,将得到如下窗口:
  
  
  
   因为考虑到数据库的安全性能,所以我们希望可以通过其他方式来实现数据库连接字符串的信息隐藏。在这我们通过给连接字符串一个别名,并且将这个别名保存在Web.Config文件中。VS 2005会自动将别名和连接字符串进行映射,以实现数据库的连接。
  
    第六步:单击"下一步"按钮后,将会出现如下窗口:
  
  
  
  
    我们可以直接指定一个表格,选择其中的某些字段,单击"下一步"按钮后,就完成了整个的数据库配置过程。
   
    执行该程序后,其页面显示如下:
  
  
  
  现在我们来分析一下所生成的页面代码,查看代码可以在页面中右键选择"查看代码"项。
  
  <form runat="server">
   <ASP:GridView ID="GridView1" DataSourceID="SqlDataSource1" runat="server">
    <Columns>
     <asp:BoundField HeaderText="Last Name" DataField="au_lname" />
     <asp:BoundField HeaderText="First Name" DataField="au_fname" />
     <asp:BoundField HeaderText="City" DataField="city" />
     <asp:BoundField HeaderText="State" DataField="state" />
     <asp:BoundField HeaderText="Zip Code" DataField="zip" />
     <asp:CheckBoxField HeaderText="Contract" DataField="contract" />
    </Columns>
   </asp:GridView>
   <asp:SqlDataSource ID="SqlDataSource1" runat="server"
  SelectCommand="SELECT [au_lname], [au_fname],[city],[state],[zip] FROM [authors]"
  ConnectionString="<%$ ConnectionStrings:Pubs %>" />
  </form>
  
    在本例中,DataGrid控件指定其"DataSourceID"属性为"SqlDataSource1",这样就建立了数据绑定控件和数据源控件之间的关联。
  
    GridView 控件反映 SqlDataSource 返回的数据记录的字段以动态生成网格的列。通过向 GridView 的 Columns 集合添加 DataControlField 对象,还可以指定要显示的显式列字段。这样允许确切指定要显示的列以及它们的相对顺序。可分配给Columns集合的其他字段类型包括 ImageField、HyPerlinkField、CommandField、ButtonField 和 TemplateField。 我们可以根据需要来选择这些
  字段类型。
  
    SqlDataSource 的 ConnectionString 属性指定到数据库的连接字符串,SelectCommand 属性指定要执行以检索数据的查询。连接字符串可以在页中按字面文本指定,不过在此例中,该属性是采用一种新的语法方式在Web.Config来查询该连接字符串的实际值。
  
    在本例中,Web.Config中的代码片段如下:
  
  <connectionStrings>
  <add name="Pubs" connectionString="Data Source=hoowoo;Initial Catalog=pubs;
  Integrated Security=True" providerName="System.Data.SqlClient"/>
  </connectionStrings>
  
    通过在Web.Config中添加一个"<connectionStrings></connectionString>"节点,就可以实现连接字符串与"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 中包括四个提供程序:
  
  <configuration>
   <system.data>
    <DbProviderFactories>
     <add name="Odbc Data Provider" invariant="System.Data.Odbc" type="System.Data.Odbc.OdbcFactory, ..." />
     <add name="OleDb Data Provider" invariant="System.Data.OleDb" type="System.Data.OleDb.OleDbFactory, ..." />
     <add name="OracleClient Data Provider" invariant="System.Data.OracleClient"     type="System.Data.OracleClient.OracleClientFactory, ..." />
     <add name="SqlClient Data Provider" invariant="System.Data.SqlClient" type="System.Data.SqlClient.SqlClientFactory, ..." />
    </DbProviderFactories>
   </system.data>
  </configuration>
  
    SqlDataSource 的 ProviderName 属性可设置为任何有效提供程序工厂的固定名称(默认为 System.Data.SqlClient)。注意,如果更改提供程序名称,则需要确保 ConnectionString 和 SelectCommand 属性使用所选提供程序的正确语法。
  

原文转自:http://www.ltesting.net