我用vb连接数据库用ado可是我想知道其他的方法,在网上查询都不是很完整。哪位大哥能总结一下?我想这也是其他菜鸟所遇到的问题吧,谢谢了!
比如:连接方法:...所用控件...(我就是这个不太熟),连接过程...
从定义dim到打开数据库。

解决方案 »

  1.   

    http://www.connectionstrings.com/连接字符串!用ado的一个简单例子:Private Sub Form_Load()
        Dim Cnn As New ADODB.Connection
        Dim Rs As New ADODB.Recordset
        Cnn.ConnectionString = "数据库连接字符串"
        Cnn.Open
        Rs.Open "SELECT * FROM Info WHERE 编号='" & 条件 & "'", Cnn, adOpenKeyset, adLockReadOnly, adCmdText
        If Rs.EOF And Rs.BOF Then
        Else
            Text1.Text = Rs("编号")
            Text2.Text = Rs("姓名")
            Text3.Text = Rs("性别")
        End If
        Rs.Close
        Set Rs = Nothing
        Cnn.Close
        Set Cnn = Nothing
    End Sub
      

  2.   

    谢谢,但是我不是这个意思:我是说总结一下其他的方法:比如ado用什么控件,dao用什么控件,其他控件..........还有连接方法.
      

  3.   

    Option ExplicitDim DbStyle As String
    Dim CT As SmDataDiap'
    '创建一个连接(连接到SQL)
    '函数名:CreateSqlConn
    '参数:  DbConnection ADODB连接,ServerName 服务器名,DBname 数据库名,UserID 登录用户名,UPw 登录密码,Timerout 连接超时
    '返回值:TRUE 连接成功.FALSE 连接失败.
    '例:    CreateSqlConn p_cnn,"CJH","cjherp001","sa","123",15
    '
    Public Function CreateSqlConn(ByRef DbConnection As ADODB.Connection, _
                                  ServerName As String, _
                                  DbName As String, _
                                  UserID As String, _
                                  UPw As String, _
                                  Optional Timerout As Long = 15) As Boolean
        Dim ReturnVal As Boolean    On Error Resume Next    If DbConnection.State = adStateOpen And Not IsEmpty(adStateOpen) Then
           DbConnection.Close
        End If
    '/连接1
        DbConnection.Provider = "MSDASQL.1"
        DbConnection.ConnectionString = "Driver={SQL Server};Server=" & ServerName & ";DataBase=" & DbName & ";Uid=" & UserID & ";Pwd=" & UPw & ";APP=" & App.Path & ";WSID=" & UserID & ";Connect Timeout=" & Timerout & ";"
    '/--------------------------------------------------------------------------------------------
    '/连接2  Provider=SQLOLEDB.1;Password=123;Persist Security Info=True;User ID=sa;Initial Catalog=pubs;Data Source=cjh
    '/    DbConnection.Provider = "SqloleDB.1"
    '/    DbConnection.ConnectionString = "Database=" & DBname & ";Server=" & ServerName & ";Uid=" & UserID & ";Pwd=" & UPw & ";Connect Timeout=" & Timerout & ";"
    '/---------------------------------------------------------------------------------------------
        DbConnection.ConnectionTimeout = Timerout
        DbConnection.CommandTimeout = Timerout
        DbConnection.Open
        DoEvents
        If Err.Number = 0 Then
           DbStyle = "SQL"
           ReturnVal = True
        Else
           Err.Clear
           DbStyle = ""
           ReturnVal = False
        End If
        CreateSqlConn = ReturnVal
    End Function'
    '创建一个连接(连接到ACCESS)
    '函数名:CreateMdbConn
    '参数:  DbConnection ADODB连接,MdbPath ACCESS数据库路径,Provider JET引擎版本,UserID 登录用户名,UserWord 登录密码
    '返回值:TRUE 连接成功.FALSE 连接失败.
    '例:    CreateMdbConn p_cnn,"C:\DEMO.MDB","sa","123"
    Public Function CreateMdbConn(ByRef DbConnection As ADODB.Connection, _
                                  MdbPath As String, _
                                  Optional Provider = "Microsoft.Jet.OLEDB.4.0;", _
                                  Optional UserID As String = "admin", _
                                  Optional UserWord As String = "") As Boolean
      Dim ConStr As String
        
      On Error Resume Next
      
      If DbConnection.State = adStateOpen And Not IsEmpty(adStateOpen) Then
         DbConnection.Close
      End If
      '/------------------------------------------------------------------
      ConStr = "Provider=" & Provider & _
               "Data Source=" & MdbPath & ";" & _
               "Jet OLEDB:Database Password=" & UserWord & ";" & _
               "User ID=" & UserID & ";"  DbConnection.ConnectionString = ConStr
      DbConnection.Open
      DoEvents  If Err.Number = 0 Then
         DbStyle = "MDB"
         CreateMdbConn = True
      Else
         Err.Clear
         DbStyle = ""
         CreateMdbConn = False
      End If
    End Function'
    '创建一个连接(连接到其它数据库类型)
    '函数名:CreateOtherConn
    '参数:  DbConnection ADODB连接,FilePath 数据库路径,UserName 登录用户名,PassWord 登录密码,DbType SmDbType枚举数据库类型
    '返回值:TRUE 连接成功.FALSE 连接失败.
    '例:
    'CreateOtherConn Cnn, "E:\CjhLx\dbf", , , FoxPro
    'StrSql = "select * from [employee.dbf]"
    'Set Rs = RsOpen(Cnn, StrSql)
    'Set DataGrid1.DataSource = RsPublic Function CreateOtherConn(ByRef DbConnection As ADODB.Connection, _
                                   FilePath As String, _
                                   Optional UserName As String = "admin", _
                                   Optional PassWord As String = "", _
                                   Optional DbType As SmDbType = Access) As Boolean
            Dim ConnStr As String
            Dim DriveName(5) As String
            Dim tDbType(5) As String
            Dim UserPwd(5) As String
            
            '/驱动程序
            DriveName(1) = "{Microsoft Access Driver (*.mdb)}"
            DriveName(2) = "{Microsoft Excel Driver (*.xls)}"
            DriveName(3) = "{Microsoft Text Driver (*.txt; *.csv)}"
            DriveName(4) = "{Microsoft Visual FoxPro Driver};SourceType=DBF"
            DriveName(5) = "{Microsoft dBase Driver (*.dbf)}"
            '/类型
            tDbType(1) = "MDB"
            tDbType(2) = "XLS"
            tDbType(3) = "TXT"
            tDbType(4) = "FDB"
            tDbType(5) = "DDB"
            '/用户名和密码.
            UserPwd(1) = "Uid=" & UserName & ";Pwd=" & PassWord & ";"
            UserPwd(2) = "Uid=" & UserName & ";Pwd=" & PassWord & ";"
            UserPwd(3) = ""
            UserPwd(4) = "Uid=" & UserName & ";Pwd=" & PassWord & ";"
            UserPwd(5) = "Uid=" & UserName & ";Pwd=" & PassWord & ";"
            
            On Error Resume Next
            
            If DbConnection.State = adStateOpen And Not IsEmpty(adStateOpen) Then
               DbConnection.Close
            End If
            ConnStr = "Provider=MSDASQL.1;Persist Security Info=False;DRIVER=" & DriveName(DbType) & ";" & UserPwd(DbType) & "DBQ=" & FilePath
            DbConnection.ConnectionString = ConnStr
            DbConnection.Open
            DoEvents
              
            If Err.Number = 0 Then
               DbStyle = tDbType(DbType)
               CreateOtherConn = True
            Else
               Err.Clear
               DbStyle = ""
               CreateOtherConn = False
            End If
      End Function
      

  4.   

    操纵数据库不提倡用控件,特别是Adodc这个家伙。
      

  5.   

    都误解我的意思了,我是说我现在只知道ado比如
    所用控件:microsoft activex data object 2.7 libriary
    方法:dim conn as new adodb.connection
          dim rs as new adodb.recordset
          str="provider=microsoft.jet.oledb.4.0;data source="&app.path("db1.mdb")
          conn.open str
          rs.open "select * from table",conn,1,1
    到这里连接成功就可以了。
    现在我想知道dao,data.......等其他连接数据库的控件和方法。
      

  6.   

    晕!
    microsoft activex data object 2.7 libriary 是控件?
      

  7.   

    何况,会ADO还去学DAO,简直就是浪费时间啦。
      

  8.   

    刚开始看国人的书是比较晕的,我以前有同感,自从别人给了一个连接代码后,我现在都用它。根本用不着什么控件,就是些连接代码要在"工程“--引用--选择microsoft activex data object 2.7 libriary 才能运行。然后不用加什么数据库控件,
    dim conn as new adodb.connection
          dim rs as new adodb.recordset
          str="provider=microsoft.jet.oledb.4.0;data source="&app.path("db1.mdb")
          conn.open str
          rs.open "select * from table",conn,1,1
    然后给文本款什么赋值就是text1.text=rs("字段名")
    看国人的(包括微软的书)都是用那个难用的控件,很晕的。
      

  9.   

    ado - adodc控件
    一个是可以直接引用,同你说的一个就是在form中添加adodc控件,就可以使用adodb类
      

  10.   

    有全套的ERp源代碼提供,包括21個模塊的內容,有軟件設計文檔,數據庫設計文檔,業務流程圖,幫助文檔;
    有意者與[email protected]聯系
      

  11.   

    顺便问一句,用连接代码能把文本框绑定到数据库上吗?我觉得adodc控件的绑定还是挺方便的
      

  12.   

    有没有用过rdo来连接网上数据库(ACCESS2000)的,如果有的话请帖出源代码可以吗?
    老板急要...
      

  13.   

    文本绑定:
    dim conn as new adodb.connection
          dim rs as new adodb.recordset
          str="provider=microsoft.jet.oledb.4.0;data source="&app.path("db1.mdb")
          conn.open str
          rs.open "select * from table",conn,1,1      text1.text=rs("字段名")