一句话说不清楚
请找找以前的贴子,近两天就有简单地说就是OLEDB
ADO
SQL建立一个ADODB.Connection.
获取记录ADODB.Recordset
命令:ADODB.Command

解决方案 »

  1.   

    '如果决定用VB做了,就装一个MSDN
    '这只是一个用向导生成的最简单的VB与SQL SERVER连接的程序,
    '以下包括两个ADO对象——Connection和Recordset,另外我再加一个Command对象
    'Connection对象是用来连接数据库的,我知道的连接有很多种方法,
    '这种我认为是最好的一种也是最专业的一种,另外还有用控件的,我就不说这种了。
    Dim WithEvents adoPrimaryRS As Recordset        '记录集对象
    Dim Cmd As Command                              '命令对象
    Dim mbChangedByCode As Boolean
    Dim mvBookMark As Variant
    Dim mbEditFlag As Boolean
    Dim mbAddNewFlag As Boolean
    Dim mbDataChanged As Boolean
    Dim db As Connection                            '连接对象Private Sub Form_Load()
    '-------------以下就是定义一个Connection对象-----------------------------------
    '这句是固定要写的,如果在定义的时候写成Dim db As New Connection就也可以不写这一句
      Set db = New Connection
      
      '如果用表格方式也就是用DATAGRID就一定要写这一句,否则就会出问题——这是我的经验
      db.CursorLocation = adUseClient
      
    '下面这句就是打开这个连接,我对于这几个参数也研究得不是很明白的,我只对我
    '知道的几个参数说一下,其中driver是指odbc的驱动程序,server是指服务器的名称,
    'uid是指用户名,pwd是指密码,database是指数据库,其实这一句也不是我写的,
    '一般我都是用向导来生成这句,然后复制过来,大部分我认识的人也是这样写的。
      db.Open "PROVIDER=MSDASQL;driver={SQL Server};server=cc;uid=sa;pwd=;database=bbs;"'-------------以下是用来定义记录集对象的-----------------------------------------
    '这一句也是和Connection一样的
      Set adoPrimaryRS = New Recordset
    '这句的作用就是打开一个表,用的是SQL语句,第一个参数就是那个SQL语句,
    '第二个参数是前面打开的连接,第三个和第四个参数我也没有看过具体的作用,
    '如果你想知道其详细的作用你可以找一些书籍看一下
      adoPrimaryRS.Open "select ID,BbsTitle,Description,FClass,SClass,MasterName,MasterMsg from bbsInfo", db, adOpenStatic, adLockOptimistic'------------下面的代码是将控件与记录集挂上,就和VFP是一样的,其中有两个主要的属性——我认为------------
    '一个就是在下面用到的DataSource,另外还有一个,就是在设计的时候用到了一个属性datafield它是用来挂字段的
      Dim oText As TextBox
      '绑定文本框到数据提供者
      For Each oText In Me.txtFields
        Set oText.DataSource = adoPrimaryRS
      Next  mbDataChanged = False
    End SubPrivate Sub CommandSample()
    '以下是定义一个Command对象
        Set Cmd = New Command                       '同上
        Cmd.ActiveConnection = db                   '设置连接
    '执行这个更新语句
        Cmd.Execute "update bbsinfo set mastername='张辉' where mastername='zh'"End SubPrivate Sub Form_Resize()
      On Error Resume Next
      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 Sub
    Private 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
      

  2.   

    dim CONsql as ADODB.ConnectionSet CONsql = New ADODB.Connection
    dim ss as string
    dim strBaseName as String '数据库名称
    dim strServerName as String 'SQL SERVER 服务器名称
    dim lsPass1 as string '密码
    dim lsLoginId  as string '用户名
    ss = "Provider=SQLOLEDB.1;Password=" + lsPass1 + ";Persist Security Info=True;User ID=" + lsLoginId + ";Initial Catalog=" & strBaseName & ";Data Source=" & strServerName
    Set CONsql = New ADODB.Connection
        With CONsql
            .CursorLocation = adUseClient
            .CommandTimeout = 500
            .Open ss
        End With
    dim Rs as new adodb.recordset 
    rs.open "select * from table1 ",CONsql, adOpenStatic, adLockOptimistic