在窗体中放一个ADO数据控件,然后设置其属性(用OLEDB连接),再把连接属性复制出来就可以了。

解决方案 »

  1.   

    用ADO代码直接连接我觉得更好。
    具体代码可以看MSDN。里面很详细的。
      

  2.   

    可以使用连接字串数据库
    各种数据库的连接字串参见:
    http://www.connectionstrings.com/借助数据控件连接数据库如楼上所言,另外可以不用数据控件,在工程中引用microsoft activex data objects 2.0 library (2000可引用2.5)
    一个实例:Public Function Get_Data(ByVal S_SQL_str As String) As Recordset  '得到记录集
    Dim con As ADODB.Connection
    Dim rs As ADODB.Recordset
    Dim strcnn As String
        Set con = New ADODB.Connection
        Set rs = New ADODB.Recordset
        
        con.Open "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=yourdatabase;Data Source=servers"    rs.CursorLocation = adUseClient
        rs.CursorType = adOpenStatic
        rs.Open S_SQL_str, con, adOpenDynamic, adLockOptimistic
        Set Get_Data = rs
        Set con = Nothing
        Set rs = Nothing
        
    If Err.Number <> 0 Then
        If Err.Number = 3704 Then
            MsgBox "连接失败!" , vbInformation, "信息!"
        Else
            MsgBox Err.Description, vbInformation, "信息!"
        End If
        Exit Function
    End If
    End Function
      

  3.   

    老是遗忘注明条件:S_SQL="select * from Yourtable"
      

  4.   

    谢谢各位,我的意思是尽可能多的使用代码,少用难以移植的东西如odbc,急,以后再结帖吧
      

  5.   

    用ADODim Cn1 As ADODB.Connection
    Dim Rs1 As ADODB.RecordsetSet Cn1 = New ADODB.Connection
        ConnectStr = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=lgjygl;Data Source=ServerName"Cn1.Open ConnectStr, "sa(用户名)", "1234(密码)"
    Set Rs1 = New ADODB.Recordset
    Rs1.Open "Select * from Table where ……", Cn1, adOpenStatic
      

  6.   

    用ado
    建立类(如:adoConn.cls)封装数据库的连接和事务、执行sql、断开等方法操作
    在程序启动时,建立全局的数据库类对象,利用对象负责所有对数据库的操作
    方案灵活、可重用性好
      

  7.   

    如果用SQL,在VB中不必用ADODC控件,只要有数据源就可以用添加代码的方式来连接数据库,我对ASP不是很熟,不好根据ASP说什么只给你个例子:    我有用SQL Server建的数据库JinShengLiCai,其中有一张表J_MiMa,其中有两个字段UserID、Password。用代码设计如下:Dim WithEvents adoPrimaryRS As Recordset
    Dim mbChangedByCode As Boolean
    Dim mvBookMark As Variant
    Dim mbEditFlag As Boolean
    Dim mbAddNewFlag As Boolean
    Dim mbDataChanged As BooleanPrivate Sub Form_Load()
      '连接数据库
      Dim db As Connection
      Set db = New Connection
      db.CursorLocation = adUseClient
      db.Open "PROVIDER=MSDASQL;dsn=JinCai;uid=;pwd=;"  '连接字段
      Set adoPrimaryRS = New Recordset
      adoPrimaryRS.Open "select UserID,password from J_MiMa", db, adOpenStatic, adLockOptimistic  Dim oText As TextBox
      '绑定文本框到数据提供者
      For Each oText In Me.txtFields
        Set oText.DataSource = adoPrimaryRS
      Next  mbDataChanged = False
    End SubPrivate Sub Form_Resize()
      On Error Resume Next
      '设计仿ADO控件的按钮位置
      lblStatus.Width = Me.Width - 1500
      cmdNext.Left = lblStatus.Width + 700
      cmdLast.Left = cmdNext.Left + 340
    End SubPrivate Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
      If mbEditFlag Or mbAddNewFlag Then Exit Sub  Select Case KeyCode
        Case vbKeyEscape
          cmdClose_Click
        Case vbKeyEnd
          cmdLast_Click
        Case vbKeyHome
          cmdFirst_Click
        Case vbKeyUp, vbKeyPageUp
          If Shift = vbCtrlMask Then
            cmdFirst_Click
          Else
            cmdPrevious_Click
          End If
        Case vbKeyDown, vbKeyPageDown
          If Shift = vbCtrlMask Then
            cmdLast_Click
          Else
            cmdNext_Click
          End If
      End Select
    End SubPrivate Sub Form_Unload(Cancel As Integer)
      Screen.MousePointer = vbDefault
    End SubPrivate Sub adoPrimaryRS_MoveComplete(ByVal adReason As ADODB.EventReasonEnum, ByVal pError As ADODB.Error, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
      '为这个 recordset 显示当前记录位置
      lblStatus.Caption = "Record: " & CStr(adoPrimaryRS.AbsolutePosition)
    End SubPrivate Sub adoPrimaryRS_WillChangeRecord(ByVal adReason As ADODB.EventReasonEnum, ByVal cRecords As Long, adStatus As ADODB.EventStatusEnum, ByVal pRecordset As ADODB.Recordset)
      '验证代码置于此处
      '下列动作发生时该事件被调用
      Dim bCancel As Boolean  Select Case adReason
      Case adRsnAddNew
      Case adRsnClose
      Case adRsnDelete
      Case adRsnFirstChange
      Case adRsnMove
      Case adRsnRequery
      Case adRsnResynch
      Case adRsnUndoAddNew
      Case adRsnUndoDelete
      Case adRsnUndoUpdate
      Case adRsnUpdate
      End Select  If bCancel Then adStatus = adStatusCancel
    End SubPrivate Sub cmdAdd_Click()    '“新增记录”按钮代码
      On Error GoTo AddErr
      With adoPrimaryRS
        If Not (.BOF And .EOF) Then
          mvBookMark = .Book
        End If
        .AddNew
        lblStatus.Caption = "添加记录"
        mbAddNewFlag = True
        SetButtons False
      End With  Exit Sub
    AddErr:
      MsgBox Err.Description
    End SubPrivate Sub cmdDelete_Click()     '“删除记录”按钮代码
      On Error GoTo DeleteErr
      With adoPrimaryRS
        .Delete
        .MoveNext
        If .EOF Then .MoveLast
      End With
      Exit Sub
    DeleteErr:
      MsgBox Err.Description
    End SubPrivate Sub cmdRefresh_Click()    '“刷新数据库”按钮代码
      '只有多用户应用程序需要
      On Error GoTo RefreshErr
      adoPrimaryRS.Requery
      Exit Sub
    RefreshErr:
      MsgBox Err.Description
    End SubPrivate Sub cmdEdit_Click()    '“编辑记录”按钮代码
      On Error GoTo EditErr  lblStatus.Caption = "编辑记录"
      mbEditFlag = True
      SetButtons False
      Exit SubEditErr:
      MsgBox Err.Description
    End SubPrivate Sub cmdCancel_Click()   '“取消修改”按钮代码
      On Error Resume Next  SetButtons True
      mbEditFlag = False
      mbAddNewFlag = False
      adoPrimaryRS.CancelUpdate
      If mvBookMark > 0 Then
        adoPrimaryRS.Book = mvBookMark
      Else
        adoPrimaryRS.MoveFirst
      End If
      mbDataChanged = FalseEnd SubPrivate Sub cmdUpdate_Click()         '“确定修改”或“更新修改”按钮代码
      On Error GoTo UpdateErr  adoPrimaryRS.UpdateBatch adAffectAll  If mbAddNewFlag Then
        adoPrimaryRS.MoveLast              '移到新记录
      End If  mbEditFlag = False
      mbAddNewFlag = False
      SetButtons True
      mbDataChanged = False  Exit Sub
    UpdateErr:
      MsgBox Err.Description
    End SubPrivate Sub cmdClose_Click()     
      Unload Me
    End SubPrivate Sub cmdFirst_Click()    '“第一条记录”按钮代码
      On Error GoTo GoFirstError  adoPrimaryRS.MoveFirst
      mbDataChanged = False  Exit SubGoFirstError:
      MsgBox Err.Description
    End SubPrivate Sub cmdLast_Click()           '“最后一条记录”按钮代码
      On Error GoTo GoLastError  adoPrimaryRS.MoveLast
      mbDataChanged = False  Exit SubGoLastError:
      MsgBox Err.Description
    End SubPrivate Sub cmdNext_Click()     '“下一条记录”按钮代码
      On Error GoTo GoNextError  If Not adoPrimaryRS.EOF Then adoPrimaryRS.MoveNext
      If adoPrimaryRS.EOF And adoPrimaryRS.RecordCount > 0 Then
        Beep
         '已到最后返回
        adoPrimaryRS.MoveLast
      End If
      '显示当前记录
      mbDataChanged = False  Exit Sub
    GoNextError:
      MsgBox Err.Description
    End SubPrivate Sub cmdPrevious_Click()           '“上一条记录”按钮代码
      On Error GoTo GoPrevError  If Not adoPrimaryRS.BOF Then adoPrimaryRS.MovePrevious
      If adoPrimaryRS.BOF And adoPrimaryRS.RecordCount > 0 Then
        Beep
        '已到最后返回
        adoPrimaryRS.MoveFirst
      End If
      '显示当前记录
      mbDataChanged = False  Exit SubGoPrevError:
      MsgBox Err.Description
    End SubPrivate Sub SetButtons(bVal As Boolean)   '按钮代码显示设计
      cmdAdd.Visible = bVal
      cmdEdit.Visible = bVal
      cmdUpdate.Visible = Not bVal
      cmdCancel.Visible = Not bVal
      cmdDelete.Visible = bVal
      cmdClose.Visible = bVal
      cmdRefresh.Visible = bVal
      cmdNext.Enabled = bVal
      cmdFirst.Enabled = bVal
      cmdLast.Enabled = bVal
      cmdPrevious.Enabled = bVal
    End Sub以上代码是一个页面的总设计,包括ADO代码的连接,及各个按钮功能。只要在窗体上加上控件就可用。!这上面的代码都是在WIN2000+VB6.0+MS SQL 2000下通过,直接复制、粘帖就可以了!
      

  8.   

    能不用ODBC就不要用它,它是最慢的
      

  9.   

    真是收获颇丰呀。thank you,my friends.