Vb数据库(包括:连接和各种基本操作及报表)

  前几天,和寝室的兄弟用VB做了个项目,我主要负责数据库方面,因为是第一次用VB,所以在开发过程中遇到了一系列问题,当我做完整个项目后,感觉到这些问题应该好好总结一下,因为这些问题新人在开发数据库时可能也会常常遇见,接下来我就从最基本的问题谈起:

  1. 数据源问题
       我们经研究决定采用了大多数vb程序开发所采用的形式,既在设计器里添加个DataEnvironment(数据源环境设计器),这样可以更快捷的创建ADO Connection和Command对象来访问数据(因为是图形界面自然比写代码快了,呵呵),然后在DataEnvironment1里添加个Connection(指定连接数据库的方法和数据库路径什么的),最后在添加个Commmand(可以或取数据库连接中任何数据的详细信息,在属性的数据库对象中选则表,并将其名字改为当前选中的表名),下面为书写方便,指定将DataEnvironment1改名为  DataEnv,将Connection改名为Conn,将Commmand改名为table.
  2. 如何使用数据源
      举个简单例子就可以了,例如对table表中的数据进行增,删,改,查这几个最基本的操作,可以分别用下面的几条语句即可实现:
         查询:
           dim sql as string
            sql = "select * from table"
            DataEnv.rstable.Open sql, DataEnv.Conn, adOpenDynamic, adLockOptimistic
        若引用table里面的数据只需直接用DataEnv.ratable("table_ID")即可
        修改:
           dim sql as string
            sql = "select * from table"
            DataEnv.rstable.Open sql, DataEnv.Conn, adOpenDynamic, adLockOptimistic
             DataEnv.rstable("ID")=2
            DataEnv.rstable.update
       删除:
       和前面的一样,只需注意sql语句的定位,然后调用DataEnv.rstable.delete即可
      插入:
        dim sql as string
            sql = "select * from table"
            DataEnv.rstable.Open sql, DataEnv.Conn, adOpenDynamic, adLockOptimistic
           dataenv.rstable.addnew 
            DataEnv.rstable("ID")=3
             DataEnv.rstable.update
       执行后数据库将插入ID为3的新纪录
  3. 执行操作时应该注意的问题
      最重要也是人们最易错的事情是数据源的打开和关闭,这里可以直接
    dataenv.rstable.close
    关闭即可,另外,委防止错误,可以在打开前加入如下代码:
    If DataEnv.rstable.State = adStateOpen Then
                DataEnv.rstable.Close
    End If
    在关闭前加如下代码
    If DataEnv.rstable.State = adStateClose Then
                DataEnv.rstable.Open
    End If
    这两段代码是判断当前数据源是打开还是关闭的(和有用的的哦,常常在异常处理时对数据源进行操作,非常实用),读者可自行使用
  4. 数据的显示
       在读出数据后最重要的当然是显示出来,方法有很多,这里只介绍一种,DataGrid,个人认为此工具性能和功能都还算比较强进的,在这里只介绍如何动态的设计数据源.
      其实很简单,如果前面的都会的话下面的应该没什么问题的
     DataEnv.table.Open "select * from table", DataEnv.Conn, adOpenDynamic, adLockOptimistic
                DataGrid.DataMember = "table"
                Set DataGrid.DataSource = DataEnv
                DataGrid.Refresh
                DataEnv.rstable.Close
    将这几句代码加入窗体的Load()函数中,这样在窗体运行时可自动读取记录,或加到相应位置也可以,看读者需要了.
  5. DataGrid的数据的刷新
    其实这个也很简单,但本人比较笨,是挨个属性试才试出的,现将代码给出
         DataEnv.table.Open "select * from table where ID=1", DataEnv.Conn, adOpenDynamic, adLockOptimistic
           DataEnv.rstable.Requery    '这句最重要,应该是刷新当前数据源的记录集,这样控件所显示的应该是最新记录
                DataGrid.DataMember = "table"
                Set DataGrid.DataSource = DataEnv
                DataGrid.Refresh
                DataEnv.rstable.Close
    执行后DataGrid只显示ID为1的记录,可以放在单击按钮处,呵呵
  6. 异常处理
    这个很重要,在实际中往往遇到一些不可知的问题,常常可以用如下代码来解决
    on error goto a:
    exit sub
    a: if err.num<>0 then
        '处理语句,可以加上数据源的关闭什么的
        end if
  7. 报表处理
          这是一般性问题,大多数数据库操作最后大多是利用报表打印,其中方法很多,在这里只介绍一种我认为比较简单的,并且是用到前面介绍的数据源.首先添加一个报表设计器datareport,将数据源设为前面的DataEnv,之后选中关联的表(table)即可,非常简单.下面最重要的是动态设定报表设计器的数据源,这样可以通过单击按钮或是查询定位一条记录后让报表显示该记录,代码如下
         If DataEnv.table.State = adStateOpen Then
                DataEnv.table.Close
         End If
         Dim sql As String
       
        sql = "select  *  from table where ID=1"
        DataEnv.talbe.Open sql, DataEnv.Conn, adOpenDynamic, adLockOptimistic
        If DataEnv.table.EOF And DataEnv.table.BOF Then
           Set datareport.DataSource = DataEnv
        End If
       dataenv.conn.close
    本段代码可以灵活使用,还可以加上异常处理等.

    可能还会还有一些其他的问题,目前可能我还没有遇到,如果遇到的话我会即使补充进来的,欢迎大家一起讨论.如有错误的地方请大家指出,及时更正

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值