这几天做了五个基础的VB数据库开发的例子他们分别是:系统登录、使用ADO访问数据源、使用数据绑定访问数据、分页显示记录、和数据查询。这几个例子所涉及到的都是对数据库的访问操作,用到了sql语言中的SEIECT语句。在对数据库进行访问时,首先是要链接数据库。
我们可以使用ADO对象,也可以使用ADO DATA控件来完成。
我们在使用前要引用ADO对象,或添加ADO DATA控件。使用ADO DATA 控件编程,代码量会少些,步骤是从ADO DATA控件的属性设置中将其链接到数据库,然后在从能与数据绑定的控件属性中设置数据源及其他参数,来连接显示数据库中的记录。VB中支持数据绑定的控件有:
内部控件Image,ComBoxBox,CheckBox,Label,PictureBox,ListBox,TextBox,
ActiveX控件 RichTexBox,Microsoft Chart,DateTimePicker,ImageCombo,MonthView,DataList,DataCombo,DataGrid,Microsoft Hierarchical FlexGrid 等
在使用ADO对象时要用Connection对象同数据库链接,链接方法是使用ConnectionString属性,然后使用Open方法打开链接;接着使用Recordset来装载数据库中的数据,用到了Recordset的ActiveConnection属性和Open方法。
前三个例子使用的就是上面的Connection对象和Recordset对象,后两个例子则接触到了第三个ADO对象——Comman对象和另外两个控件DataGrid和MSFlexgrid控件。
在这里Command对象适用于数据查询的,实现数据查询的方法有多种,再此介绍一下使用ADO Command对象创建参数查询:
(1) 创建Command对象,并将Command的ActiveConnection属性设置为Connection对象
(2) 利用Command对象的CommandText属性设置查询条件
(3) 创建Command对象的参数对象,利用CreateParameter方法,然后将该参数使用Append方法添加到Command 的Parameters中
(4) 设置参数值,例如:
objCmd(“用户名”)=”%” & txtUserName & “%”
(6) 利用Recordset对象和MSFlexGrid控件等来显示查询结果
做这几个例子时也碰到了些问题:
开始时是对访问数据库的真题步骤不太清楚,摸不清Connection和Recordset对像关于链接时的属性方法如何用。
再有就是做数据分页显示构思时不知如何获得当前页和每页显示的数据量,后来看了代码才发现,人家Recordset本身就有这些属性,直接拿来用就可以了!只需将在recordset中需要我们显示的放到另一个记录集objRS2中,在复制的过程中,是将原记录集中的字段名和字段数据分别复制过去,在将objRs2中的内容在DataGrid中显示就行。在DataGrid控件中显示时只需将其DataSource属性设为objRs2即可了。而要是使用MSFlexGrid控件则使用AddItem方法分别将字段数据添加进去。
而做数据查询时,我将Command对象的创建及其对象参数的创建同参数值的设置及Ececute的执行放到了同一个过程中,这样势必造成每次查询时都会建立Comman对象及其参数,从而造成对资源和时间的浪费。
当要解决一个问题时,如果需要用到新的控件,我们就应该先了解一下与这个问题有关的一些属性方法等,当我们想到要用的某个条件,如当前页,我们应该先假设该控件有了这个属性或方法,然后再查看有没有这些属性或方法!
在做一个工程时,始终应该不忘的是将功能细化,但在细化过程中我们要分清每次执行这个过程时的相同点和不同点,然后考虑是将相同点放到一个过程或函数中去还是放到窗体的Load事件中去呢?而后在对不同点分别处理。
刚做数据库的例子,有不正确不完备的地方还望指教!