一直没有时间更新博客,每天就是各种写啊,看啊。中途是有许多的领悟等等,可是鉴于当时紧张的代码奋战。总想着最后做最终总结。可是每次到结束了,要么是忘记了写了、要么是记得可是不知道写什么了。这次就趁着刚刚写完一个模块休息时候写下来吧。
     好了,直接进入主题。
 
     在asp.net中gridview绑定数据库数据源是,为了实现一个GridView绑定多个数据源,亦即动态更换数据源。在通常情况下可以使用
GridView的自动生成字段来进行设置,即根据绑定的DataSet来更新列目。设置格式如下
 
        <  asp :  GridView   ID ="GridView1"   runat   ="server"   AutoGenerateColumns  ="true" ></asp:GridView>

     但是我在GridView中使用了一个asp.net的服务器控件导致就不能使用GridView的自动生产列的特性,但是我还是想保留原来的动态绑定的特性。这个时候视图建立的重要性就凸显出来了。
 
     假定我有三张表和一张同时作为三张表的共同外键的表。
 
     表1: create table s1(
          xx1ID           int ....
          xx1Title        .......
          xxx1Content     .....
          FK_ID          ....
     )
     
     表2: create table s2(
          xx2ID      int .....
          xx2Title   ..
          ......
          FK_ID      .....
     )
     表3: create table s3(
          xx3ID     ....
          xx3Title  ...
          .......
          FK_ID     ....
     )
 
     作为外键的表:
     create table ss(
          FK_ID  ....
     )
 
     为了在web页面中根据选择的选项动态显示三张表中的数据,同时还要在列上显示一个删除按钮。就只能设置
      AutoGenerateColumns  ="false"  
     然后设置固定的列。设置如下:
         < asp   : BoundField      DataField   ="ID"               HeaderText ="xx"   />
        < asp   : BoundField      DataField   ="Title"            HeaderText  ="xx"/>
        < asp   : BoundField      DataField   ="FK_ID"       HeaderText  ="xx"   />
        < asp   : BoundField      DataField   ="....."            HeaderText  ="xx"/>
        < asp   : BoundField      DataField   ="...."         HeaderText  ="xx"/>
        < asp   : TemplateField   HeaderText   ="删除">
             < ItemTemplate   >
                  < asp   : Button   runat   ="server"   ID  ="DelBtn"   Text  ="删除"    OnClick ="del_Click"   />
              </ ItemTemplate   >
        </ asp   : TemplateField   >

     从绑定的数据字段就可以看出,和数据库相应的表的字段不对应,这个时候视图的作用就显示出来了。现在可以将三个表建立视图,但是视图中的字段名保持相同。其中一个示例:
     create view s1_view
     as
     select xx1ID as ID ,xx1Title as Title, from s1
     with check option ;删除,更新的同步更新
    这样同步对另外两张表进行操作,就可以实现数据绑定的动态更改,而不需要更多的代码。
 
这只是数据库视图一个使用方面,视图可以很好的封装数据库表和数据库所对应的业务逻辑。可以以多个业务视角来查看数据库的方式。