2:Web数据库程序中图形简易处理的方法
在ASP时代,我们可以使用Visual InterDev6.0来设计Web程序。在ASP.NET正在向我们走来的时候,我们则可以使用VB.NET来设计新一代的Web程序(ASP.NET程序)。虽然可以使用文本编辑器(例如记事本)来编写ASP.NET脚本程序,但这种方法对程序人员要求很高,即使是编程高手也往往由于英语单词拼写有误在程序中出现难以查找的错误。利用VB.NET来设计Web程序具有代码少、自动查错等优点,这些优点对于Web程序员来说无疑是一个福音。
图2所示的就是用VB.NET设计的一个Web程序。这个程序所用的数据库跟上一个程序完全一样。当浏览者单击某个人的姓名时就在右边显示他的照片,如果要查看其余的记录,则可以单击翻页链接。我们把姓名所在的那一列称为选择列。这种程序在网上很常见。要实现图2所示的功能,请先在VB.NET新建一个ASP.NET Web应用程序→把"工具箱""数据"选项卡中的OleDbDataAdapter拖动到窗体上,然后按屏幕提示配置数据适配器并生成数据集→在窗体上添加显示数据的DataGrid,再在DataGrid上单击鼠标右键并选择"属性生成器",出现图3所示的窗口。选择图3中的常规,把数据源设置为窗体中的数据集Ds1;把数据成员设置为数据库中的数据表Star;把数据键字段设置为数据库中的主键(在我们这个数据库中就是"编号"字段)。
图3 DataGrid属性生成器
为了实现分页浏览记录的功能,请选择图3中的"分页",出现图4所示的窗口。请选择图4中的"允许分页"并确定好每页的大小(也就是每显示的行数,例如3行)。选择"显示导航按钮",把页导航的位置选择为"底",模式选择为"页码",把数值按钮(也就是在每每页中显示多少个页码链接)设置为一个适当的值,具体设置情况见图4所示。
图4 DataGrid属性生成器中的分页功能
现在请选择图3中的"列",出现图5所示的窗口,请把"在运行时自动创建列"功能去掉,把"可用列"中的"编号"、"性别"、"年龄"添加到"选定的列"中。再把图5中"按钮列"中的"选择" 添加到"选定的列"中,然后在"文本字段"选择姓名字段,在"按钮类型"中选择"LinkButton",在"页眉文本"中输入"姓名",具体设置情况见图5所示。
最后,请在窗体上一个用来显示图片的Image控件(注意是Web窗体的Image控件)。完成后就要编写代码来实现程序的功能,窗体装载事件中的代码是:
Dbc.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _
Server.MapPath("Star.mdb") ' Dbc是数据连接的名称, Star.mdb是数据库
Dba.Fill(Ds1, "Star") ' Dba和Ds1分别是数据适配器和数据集的名称,Star是数据表
If Not Page.IsPostBack Then
DataGrid1.DataBind()
End If
这里的第一个语句是用来指定数据库连接用的,它可以解决数据库的路径问题。因为我们在配置数据适配器并建立数据连接时是按数据库的绝对路径来操作的,所以,当你把程序拷贝或发布到别的服务器(该机符合ASP.NET运行环境)上去运行的时候很可能就会出现找不到数据库的问题。为了避免这个问题,我们在窗体装载事件的代码中加入这个语句。但要注意把数据库与ASP.NET程序放在同一个Web文件夹中。
为了响应Datagrid的分页,我们要给DataGrid1的PageIndexChanged事件加入下列代码:
DataGrid1.CurrentPageIndex = e.NewPageIndex
DataGrid1.DataBind()
Image1.ImageUrl = Nothing '这样翻页的时候就不会显示上一页中的图片
图5 DataGrid属性生成器中的列功能
为了实现选择列的功能,我们还要给DataGrid1的SelectedIndexChanged事件编写下列程序:
Dim index As Integer
index = DataGrid1.SelectedIndex + (DataGrid1.CurrentPageIndex) * 3
Dim fname As String
fname = Ds1.Tables(0).Rows(index)("文件名")
Image1.ImageUrl = fname
那么,这样一个程序能否在其它服务器上运行和调试呢?这是广大程序设计者非常关心的问题。要把程序拷贝到其它服务器上运行和调试,请先在本机上进行编译,其方法是:选择"文件"菜单中的"生成并浏览",这样就会在程序所在的Web文件夹中的Bin 目录下生成二个扩展名为dll的文件。如果仅仅是把程序拷贝到其它服务器上运行,则只要把扩展名为aspx的主文件、数据库文件以及Bin文件夹一起拷贝到其它服务器的任何一个虚拟目录中(或Web共享文件夹)就可以了。如果是把程序拷贝到其它服务器上去调试,则应该把所有相关的文件都拷贝过去,但虚拟目录的名称可以不一样。
从这里我们也可以看出:ASP中烦人的数据库分页显示以及图形的显示问题,如果用VB.NET来设计,那已经是一件很容易的事情了。
以上所有程序都在VB.NET+Windows 2000下调试通过。
查看本文来源