我的问题是:
我在做数据库程序时,每一个form加一个ado和datagrid控件。用于连接数据库和显示数据。那怕是两个form用的数据完全一样,我也分别在两个form中分别都加一个ado和datagrid控件。
虽然我这样做编起程序来很简单。但是我老是觉得这么做不是很科学。
请问我这么做有没有什么不妥,你们做数据库程序是怎么做的?
如果是两个或多个form共用一个数据库,有没有科学一点的办法?
你们做数据库是怎么做的啊?如果可以的话,请给一个简单实例来说明两个或多个form共用一个数据源,谢谢了。
请多多指教。

解决方案 »

  1.   

    DataGrid我就一定会用,但我不用adodc,我建一个公共的Connection,再在每个窗体建一个Recordset,这样就不用Adodc了,你这样做真的是不科学呵,^_^。
      

  2.   

    楼主你用的是ADODC控件,一般来说最好是用ADODB对象来完成你要的功能,其中就包括了,上面提到的connection和recordset等等。
      

  3.   


    一个工程里,一般一次连接就行了。dim cn as adodb.connection
    set cn=new adodb.connection
    cn.connectionstring=...
    cn.open...
    dim rs as adodb.recordset
    set rs=new adodb.recordset
    set rs.activeconnection=cn
    rs.open "SQL语句"...
    dim rs1 ...
    rs1.open "SQL语句",cn
      

  4.   

    如果用adoc的话,可以把他放到一个公用窗体上
    用的时候可以frmCom.adodc就可以了
    也可以用vb自带的数据环境
      

  5.   

    用ado对象就可以了,现在谁还用adodc控件啊,太不自由了可以定义一个全局的ado.connection连接到数据库,然后每个界面要查询的时候定义一个
    局部的ado.recordset就可以了
      

  6.   

    最好不要ADODC控件,用纯代码连接灵活方便。工程->引用->Microsoft ActiveX Data  Objects 2.x Library
    在模块里加入:
    Option Explicit
        Public mCnnString As StringmCnnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\db1.mdb" & ";Persist Security Info=False"
    在窗体里引用:
    Dim mCnn As New ADODB.Connection
    Dim mRst As New ADODB.RecordsetmRst.CursorLocation = adUseClientmCnn.ConnectionString = mCnnString
    mCnn.Open
    mCnn.Execute("Select * From Table")mRst.Open "Select * From Table", mCnnString, adOpenStatic, adLockOptimistic, adCmdText