数据库的建立与链接问题

             做完学生管理系统,经过师傅的验收,发现对最初的概念了解相当不深刻!又反过头对5实例简单看了一下,老师常说,学习最重要的是反复,通过这次观看,重新对基本概念有所了解。

首先看几个专业名词:ADO---activex data object动态数据对象通过OLE DB(object linking and embed中文:对象连接与嵌入,是底端程序接口)实现对不同数据的访问。

当时师傅问我关于ADO的对象时,一下子懵了,原来我们在建立数据库定义的connection,recordset等都是ado 的对象,它共有7个对象,在这次的学生信息管理系统中最常见的就是上面那俩,3个独立对象:recordset,connection,command!还有4个附属对象:field,parameter,property,error

OLE DB由3个部分组成:数据提供者,数据消费者,服务组件。数据提供者是类似于SQL Serser,ODBC提供数据的程序,VB创建的程序就是一种典型的数据消费者,它是利用数据提供者提供的数据创建的数据应用程序。服务组件负责连接数据提供者与数据消费者。

五实例当中应用了vb外界程序的可视化管理器建立的micrsoft access数据库(其文件后缀名为.mdb),而学生信息管理系统的数据库是利用SQL Sever创建的(后缀名为.sql),数据库类的应用程序第一步是建立数据库!第二步,建立ADO引用,在vb程序里直接点击工程下的引用选择microsoft activex data objects 2.6 library即可!第三步,用代码建立连接。下面让我们看一下数据库的不同连接方式对比:

1.直接连接access数据库

dim Objcn as new connection,objRs as new recordset

objcn.connectionstring="Prvider=Microsoft.jet.OLEDB.3.5.1;" & _

"data sourse=数据远文件路径"         '连接数据提供者与数据源

objcn.open

       strSQL=“select ……from …… where……”

set objrs.activeconnection=objcn   '将数据库记录集与数据源相匹配

objrs.open(strSQL)      '记录集打开

       .                       ‘进行数据库的增删改查操作

objcn.close         ‘关闭数据库

set objrs=Nothing

set objcn=Nothing

2. 利用ODBC连接access数据库,ODBC有3种数据源连接方式,分别为用户DNS,系统DNS,文件DNS,学生信息管理系统利用的正是文件DNS的添加。

set objcn=new connection

objcn.open="dsn=数据库文件名"

set objrs=new recordset

                .

objcn.close

set objrs=nothing

set objcn=nothing

3.利用ado data控件创建数据库连接,这种方法相对简单,只要从控件属性里面进行连接即可。

看完了5实例的连接方法,解析一下对学生管理系统连接于登陆时的代码:

1.在登陆窗体中,为走向专业化,往往数据库的登录名设置为系统用户名,所以在登陆窗体的用户名部分自动获得系统用户,在开头部分调用API函数:

Private Declare Function GetUsername Lib "advapi32.dll" Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

窗体加载部分获得系统用户名:

Private Sub Form_Load()
    Dim sbuffer As String
    Dim lsize As Long
    
    sbuffer = Space$(255)  '因无法确定系统用户名的长度,先开辟一个255(最大值)空格字符控件
    lsize = Len(sbuffer)   'lsize盛放sbuffer字符串的真是长度
    Call GetUsername(sbuffer, lsize) 
    'api中字符串作函数,需要提前确定大小
    
    If lsize > 0 Then
        txtusername.Text = Left$(sbuffer, lsize)
    Else
        txtusername.Text = vbNullString
        '没有字符串
    End If
    
    ok = False
    micount = 0  ’用于登陆次数的标记
 End Sub

2.在确认按钮中建立连接:

Private Sub cmdOK_Click()
    Dim txtSQL As String
    Dim mrc As ADODB.Recordset '用于保存数据源记录集
    Dim MsgText As String


    
    UserName = ""     '先将登录名滞空
    If Trim(txtusername.Text = "") Then     '确认用户名输入框不为空
        MsgBox "没有这个用户,请重新输入用户", vbOKOnly + vbExclamation, "警告"
        txtusername.SetFocus
    Else
        txtSQL = "select * from user_info where user_id ='" & txtusername.Text & "'"
        Set mrc = ExecuteSQL(txtSQL, MsgText)    '
 调用模块当中的executesql函数建立数据库连接
        If mrc.EOF Then
            MsgBox "没有这个用
户,请重新输入用户", vbOKOnly + vbExclamation, "警告"
            txtusername.SetFocus
        Else                                    '确认密码
            If Trim(mrc.Fields(1)) = Trim(txtpassword.Text) Then
                ok = True
                mrc.Close
                Me.Hide
                UserName = Trim(txtusername.Text)
                frmmain.Show
            Else
                MsgBox "输入密码不正确,请重新输入!", vbOKOnly + vbExclamation, "警告"
                txtpassword.SetFocus
                txtpassword.Text = ""
            End If
        End If
    End If
    
    micount = micount + 1          '值允许3次输入
    If micount = 3 Then
        Me.Hide
    End If
    Exit Sub
    
End Sub
 

3.理解一下执行函数excutesql函数的连接方式。

Public Function ConnectString() As String
    ConnectString = "FileDSN=student.dsn;UID=sa;PWD=123" '文件源,登录名,验证密码
End Function
Public Function ExecuteSQL(ByVal SQL As String, MsgString As String) As ADODB.Recordset


   Dim cnn As ADODB.Connection
   Dim rst As ADODB.Recordset
   Dim sTokens() As String
   
   'On Error GoTo ExecuteSQL_Error
   
   sTokens = Split(SQL) '该函数定义将sql语句中的词以空格为分解符分解开放进一个数组里
   Set cnn = New ADODB.Connection '实体化,连接数据源
   cnn.Open ConnectString     '打开数据源
   
   If InStr("INSERT,DELETE,UPDATE", UCase$(sTokens(0))) Then       '比较确定sql数据开始单词是否为增,删,改
      cnn.Execute SQL   '执行SQL语句
      MsgString = sTokens(0) & " query successful"
      '虽然MsgString不是返回值,但传递方式是ByRef,实参地址和这个地址相同
   Else
      Set rst = New ADODB.Recordset    '实例化记录集
      rst.Open Trim$(SQL), cnn, adOpenKeyset, adLockOptimistic   '打开要执行的内容sql,连接数据源,游标类型:键集游标,窗口值固定大小
      '得到临时表,游标指向第一条记录
      'get RecordCount,
      Set ExecuteSQL = rst
      MsgString = "查询到" & rst.RecordCount & _
         " 条记录 "
   End If
   
ExecuteSQL_Exit:  ‘关闭连接
   Set rst = Nothing
   Set cnn = Nothing
   Exit Function
   
ExecuteSQL_Error:
   MsgString = "查询错误: " & _
      Err.Description
   Resume ExecuteSQL_Exit
End Function

总结来说,建立连接分三步走战略:打开--执行(增删改查)--关闭

### 回答1: 网页与本地数据库建立连接的步骤如下: 1. 首先,您需要在网页端使用一种编程语言,如 PHP 或 Python,来编写代码。 2. 然后,您需要使用一种数据库管理系统,如 MySQL 或 MongoDB,在本地创建一个数据库。 3. 接下来,您需要在代码中连接到数据库,并使用 SQL 语句来执行各种操作,如查询、插入、更新和删除数据。 4. 最后,您需要在网页上展示数据库中的数据,可以使用 HTML、CSS 和 JavaScript 等 Web 技术来实现。 希望这些信息能帮到您。 ### 回答2: 要实现网页与本地数据库的连接,可以使用以下几种方法: 1. 使用服务器端脚本语言:可以使用像PHP、Java、Python等服务器端脚本语言来连接本地数据库。在网页中通过调用相应的脚本文件,实现与本地数据库的交互。通过服务器端的脚本语言,可以执行数据库查询、插入、更新和删除等操作。 2. 使用Web服务:可以创建一个Web服务,将本地数据库的数据封装成API。网页通过调用这个API来实现与本地数据库的连接和数据的读写操作。常用的Web服务技术有SOAP、RESTful等。 3. 使用ORM框架:可以使用像Hibernate、MyBatis等ORM(对象关系映射)框架来连接本地数据库。ORM框架可以将数据库表与对象之间建立映射关系,通过操作对象来实现对数据库的操作。网页通过调用ORM框架提供的接口,实现与本地数据库的连接。 4. 使用前后端分离的架构:可以将前端和后端进行分离,前端使用HTML、CSS和JavaScript构建页面,后端使用服务器端脚本语言或框架来连接本地数据库。前端通过与后端进行API调用,实现与本地数据库的连接。这种方式可以使前后端进行独立开发和部署,并提高系统的可扩展性和稳定性。 无论采用哪种方式,都需要提供合适的数据库连接配置,包括数据库的地址、端口、用户名、密码等信息。同时也需要注意安全性,例如对输入进行过滤和验证,防止SQL注入等安全问题的发生。 ### 回答3: 网页与本地数据库建立连接是一种常见的开发需求,可以通过以下步骤实现: 1. 选择一个适合的数据库管理系统,如MySQL、Oracle、SQLite等,并安装在本地服务器上。 2. 在网页后端编程语言中,如PHP、Python、Java等,使用相应的数据库连接库来建立连接。以PHP为例,可以使用mysqli或PDO等库来访问数据库。 3. 在网页后端代码中,编写连接数据库的代码。首先,需要提供数据库的连接参数,包括数据库服务器的地址、用户名、密码等。然后,使用数据库连接库提供的函数或方法来创建数据库连接对象。 4. 连接到数据库后,可以进行数据库的操作,如插入、更新、查询等。可以编写相应的SQL语句,并使用数据库连接对象的函数或方法来执行这些SQL语句。 5. 在网页前端,可以通过与后端进行交互来实现对数据库的操作。可以通过表单提交数据,并由后端代码处理后存储到数据库中。也可以通过查询操作,获取数据库中的数据,并在前端展示。 需要注意的是,为了保证数据安全性,建议对数据库连接进行一定的安全设置,如使用防火墙、设置合适的权限等,以防止未授权的访问。 总结起来,网页与本地数据库的连接是通过在网页后端编程中使用数据库连接库来实现的。通过提供连接参数,创建数据库连接对象,并使用其相关函数或方法来执行数据库操作,从而实现与本地数据库的交互。
评论 27
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值