注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

郑浩 廊坊师范学院信息技术提高班 十一期

腾飞的开始

 
 
 

日志

 
 

红皮书实例总结  

2014-05-21 12:43:14|  分类: 技术总结 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
红皮书实例总结 - 郑浩 - 郑浩 廊坊师范学院信息技术提高班 十一期
  一、五实例用到的两种数据库连接方式
(1)有源连接
    通过采用ADO访问ODBC数据源,完成数据库连接
具体格式:
Cnn1.connectionstring="DSN=mySQLsODBC;UID=sa;PWD=123;"
(2)无源连接
方法一、 ADO对象
具体格式:
a.访问access数据库:
cnn2.ConnectionString ="Provider=Microsoft.jet.OLEDB.3.51;" & _
                                 "DataSource=" & App.Path & "\实例1.mdb"
 b.访问SQL Server数据库:
Cnn3.Connectingstring="provider=Microfoft.Jet.OLEDB.4.0;DATASource=D:\数据库\实例1.mdb"
方法二、ADO Data控件
下面对五个实例进行核心代码的总结:
实例一 “系统登录”对话框
红皮书实例总结 - 郑浩 - 郑浩 廊坊师范学院信息技术提高班 十一期

ADO   Recordset对象:用于保存从数据源获得的记录集

  • ActiveConnection属性:代表数据源的活动连接
  • EOF属性:当前记录位于记录集最后一个纪录之后       True
  • BOF属性:当前记录位于第一个记录之前     True
  • Fields集合:包含Recordset对象的所有Field对象,可使用Fields获得当前记录各个字段的值。   Objrs.fields("口令").value
  • open方法:打开记录集,其参数为执行查询SQL命令字符串。
  • 核心代码:

 Private Function check_password(ByVal username As String, ByVal password As String) As Byte
    On Error GoTo gperror
    Dim objcn As New Connection, objrs As New Recordset, strcn As String
    Dim strsql As String
        objcn.ConnectionString = "provider=microsoft.jet.oledb.3.51;" & "data source=" & "h:\数据库学习\数据库\实例1.mdb"
        objcn.Open
        strsql = "select 口令 from 系统用户 where 用户名='" & username & "'"
        Set objrs.ActiveConnection = objcn
        objrs.Open (strsql)
        If objrs.EOF Then
        check_password = 0
    Else
        If password <> Trim(objrs.Fields("口令").Value) Then
        check_password = 1
    Else
        check_password = 2
    End If
    End If
    objcn.Close
    Set objrs = Nothing
    Set objcn = Nothing
    Exit Function
gperror:
    check_password = 255
    Set objrs = Nothing
    Set objcn = Nothing
    

End Function
实例二:使用ADO 访问数据源
红皮书实例总结 - 郑浩 - 郑浩 廊坊师范学院信息技术提高班 十一期
基本知识:(1)ODBC数据源类型

   用户DSN:当前用户使用

   系统DSN:权限用户使用

   文件DSN:相同驱动程序的用户共享

(二)recordset的记录锁类型

  1. Adlockresdonly   默认值
  2. Adlockpessimistic:保守式
  3. Adlockoptimistic:开放式
  1. Adlockbatchoptimistic:开放式更新
 核心代码:
Private Sub Form_Load()
    Set objcn = New Connection '实例化connection对象
    objcn.Open "DSN=实例2DSN" '建立数据库连接
    Set objrs = New Recordset '创建客户端记录集
    With objrs
        .CursorLocation = adUseClient
        .CursorType = adOpenStatic
        .LockType = adLockOptimistic
        .Open "select* from 系统用户", objcn
    End With
    txtusername = objrs.Fields("用户名").Value
    txtpassword = objrs.Fields("口令").Value
    txtmstg = objrs.AbsolutePosition & "/" & objrs.RecordCount
    
End Sub
实例三:使用数据绑定访问数据
红皮书实例总结 - 郑浩 - 郑浩 廊坊师范学院信息技术提高班 十一期
核心代码:
Private Sub Adodc1_WillMove(ByVal adReason As ADODB.EventReasonEnum, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
    Adodc1.Caption = "当前记录:" & Adodc1.Recordset.AbsolutePosition & "/" & Adodc1.Recordset.RecordCount
End Sub
 注意事项:

1、在使用“属性页”对话框设置其属性时,应该先设置通用属性,其次设置身份信息,然后设置记录源选项。如前两项不正确,将无法获得数据库的记录源信息。

2、设置文本框数据绑定属性时,先设置DataSourse属性,再设置datamember属性,最后设置DataField属性

实例四: 分页显示记录

           红皮书实例总结 - 郑浩 - 郑浩 廊坊师范学院信息技术提高班 十一期

基本知识:

绑定到控件的方法

方法一、把当前记录复制到新的记录集上,再将其绑定到DataGrid控件

方法二、MSFLexGrid可在设计时绑定到DataGrid控件

核心代码:

Private Sub Form_Load()

    Dim strsql As String, strcn As String

    txtpagesize = "5"

    intpage = 1

    strcn = "provider=microsoft.jet.oledb.4.0;persist security info=false;" & "data source=" & "d:\数据库\实例4.mdb"

    objcn.ConnectionString = strcn

    objcn.Open

    With objrs

        .CursorLocation = adUseClient

        .CursorType = adOpenStatic

        .Open "系统用户", objcn, adOpenStatic, adLockReadOnly

    End With

    showdata (intpage)

End Sub

Public Sub showdata(ByVal intpage As Integer)

    Dim intpagecount As Integer, intrecord As Integer

    Dim objdatasource As New Recordset

    For intrecord = 0 To objrs.Fields.Count - 1

        objdatasource.Fields.Append objrs.Fields(intrecord).Name, adVarChar, objrs.Fields(intrecord).DefinedSize

    Next

    objdatasource.Open

    objrs.PageSize = Val(txtpagesize)

    objrs.AbsolutePage = intpage

    For intrecord = 1 To objrs.PageSize

        objdatasource.AddNew

        objdatasource!用户名 = objrs!用户名

        objdatasource!口令 = objrs!口令

        objdatasource!身份 = objrs!身份

        objrs.MoveNext

        If objrs.EOF Then Exit For

    Next

    Set DataGrid1.DataSource = objdatasource

    txtpagemsg = intpage & "/" & objrs.PageCount

End Sub

实例五:数据查询
红皮书实例总结 - 郑浩 - 郑浩 廊坊师范学院信息技术提高班 十一期
基本知识:

1)MFLexGrid控件中数据的添加和清除

  1. Object.additemstringindex
  2. MSFLexGrid1.clear
  3. MSFLexGrid1.removeitem2

2)数据查询3方法

  1. select语句——command对象和recordset对象执行查询
  2. command创建参数查询(本实例)
  3. select——recordsetfind方法)

核心代码:

Private Sub Form_Load()

    Set objcn = New Connection

    strcn = "provider=microsoft.jet.oledb.4.0;persist security info=false;" & "data source=" & "d:\数据库\实例5.mdb"

    objcn.ConnectionString = strcn

    objcn.Open

    Set objcmd = New Command

    Set objcmd.ActiveConnection = objcn

    With objcmd

        .CommandText = "select * from 系统用户 where 用户名 like?" & "and 身份 like?"

        .CommandType = adCmdText

    End With

  Dim parm As New Parameter

    Set parm = objcmd.CreateParameter("用户名", adVarChar, adParamInput, 10)

    objcmd.Parameters.Append parm

    Set parm = objcmd.CreateParameter("身份", adVarChar, adParamInput, 10)

    objcmd.Parameters.Append parm

    Label4 = ""

End Sub

 以上是对数据库红皮书上的五个经典实例的总结,在学习vb的时候没有好好的学习数据库的知识,现在学起来真的很吃力,并且花费了很多的时间,看看别的同学们很早就把这几个小例子总结的很好啦,因为人家在学习vb的知识的时候就已经学习数据库的知识了,这充分体现一句话啊,“出来混总是要还的”
 


 


 
  评论这张
 
阅读(35)| 评论(21)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017