我刚刚学vb,不太了解vb语法和语言环境,尝试着用ADO控件
编一个数据库应用的程序,哪位高手有示范代码给俺讲讲,
如果手动连接ODBC数据源,是不是要在form_load事件中
写以下代码?
Dim cnn As New ADODB.Connection
Dim cmd As New ADODB.Command
Dim rst As New ADODB.Recordset
用cnn打开连接,然后作为rst的参数设置rst?
之后Set DataGrid.DataSource = rst ?
就能把数据库的表显示到datagrid控件了?
然后如何实现最基本的查询,删除,添加等操作,查询的命令格式是什么?

解决方案 »

  1.   

    你可以把連接字串放在模塊中,然后在要用到地方引用就可以了.
    Dim cnn As New ADODB.Connection
    Dim cmd As New ADODB.Command
    Dim rst As New ADODB.Recordset
    cnn.connctionstring="provider=msdasql.1;persist security info=false;user id=用戶名;password=密碼;data source=odec數據源"
    cnn.open
    rst.open "select * from tablename",cnn,adoopendynamic,adlockpessimistic
    set datagrid.datasource=rst  'datagrid中可以對刪除和添加進行操作
    查詢要用sql語句:
    比如說你做了一個查詢窗体,上有一個textbox用來輸入查詢參數,語句如下:
    select 人員編號,姓名,職業 from person where 人員編號 like '" & textbox.text & "%'
      

  2.   

    谢谢!但是sql语句就直接写嘛?还是写在COMMAND对象里?
    我比较糊涂,手头没有VB书籍:(
      

  3.   

    向上面的rst.open后加sql語句可以執行,得到你要的結果.也可以用command:
    Dim cnn As New ADODB.Connection
    dim cmd as new adodb.command
    dim rst as new adodb.recordset
    cnn.connctionstring="provider=msdasql.1;persist security info=false;user id=用戶名;password=密碼;data source=odec數據源"
    cnn.open
    cmd.activeconnection=cnn
    cmd.commantext="select 人員編號,姓名,職業 from person where 人員編號 like '" & textbox.text & "%'"
    set rst=cmd.execute
      

  4.   

    'Dim cnn As New ADODB.Connection
      'Dim cmd As New ADODB.Command
      'Dim rst As New ADODB.Recordset  'cnn.Open "PROVIDER=MSDASQL;dsn=personinfo;uid=;pwd=;"
      'rst.Open "select Name,Age,Sex from PersonInfo", cnn, adoopendynamic, adLockPessimistic
      'Set DataGrid1.DataSource = rst
      
      Dim cnn As Connection
      Set cnn = New Connection
      cnn.CursorLocation = adUseClient
      cnn.Open "PROVIDER=MSDASQL;dsn=personinfo;uid=;pwd=;"  Set rst = New Recordset
      rst.Open "select Name,Age,Sex from PersonInfo", cnn, adoopendynamic, adLockPessimistic
      Set DataGrid1.DataSource = rst我刚才连接数据库的时候,用上面注释的语句,为什么出错?说
    行集合不能作为标签,这是什么意思?下面的代码可以正确在
    datagrid对象中显示出数据库的表
    只在窗体上放了个datagrid控件对象,没放ado对象完全晕了~~~:(
      

  5.   

    你首先要在VB菜单中:
    “工程”-->“引用”-->“Microsoft AxtiveX Data Objects 2.X Library”
    注:2.X为版本号,如果你机子上有高版本的就用高版本的,如:2.5或2.6的。
    "工程"-->“部件”-->“MicroSoft DataGrid Control 6.0”
    示例:private sub command1_click()
    dim adoCN as new adodb.connection'连接对象
    dim rs as new adodb.recordset'记录集对象
    dim strcon as string,sqlstr as string
    strcon = "Provider=SQLOLEDB;Driver={SQL Server};Server=服务器名;Uid=用户名;Pwd=密码;Database=数据库名"'连接字符串
    adoCN.Open strcon'打开连接(数据库)
    rs.CursorLocation = adUseClient'使用客户端游标
    sqlstr = "SELECT * FROM XXXX"
    rs.Open strSQL, strcon,3,3
    if rs.bof and rs.eof then
       msgbox "没有查询到记录!!!"
       exit sub
    else
      set datagird1.datasource=rs'将记录集显示在datagrid控件中
      datagrid1.refresh
    end if
    end sub此示例功能是将记录时显示在datagrid控件中。
      

  6.   

    樓主,是我粗心.呵呵.rst.Open "select Name,Age,Sex from PersonInfo", cnn, adoopendynamic, adLockPessimistic后的adoopendynamic改成adOpenDynamic