一直没有时间更新博客,每天就是各种写啊,看啊。中途是有许多的领悟等等,可是鉴于当时紧张的代码奋战。总想着最后做最终总结。可是每次到结束了,要么是忘记了写了、要么是记得可是不知道写什么了。这次就趁着刚刚写完一个模块休息时候写下来吧。
好了,直接进入主题。
在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 ;删除,更新的同步更新
这样同步对另外两张表进行操作,就可以实现数据绑定的动态更改,而不需要更多的代码。
这只是数据库视图一个使用方面,视图可以很好的封装数据库表和数据库所对应的业务逻辑。可以以多个业务视角来查看数据库的方式。
转载于:https://blog.51cto.com/jessenpan/1065377