我做了一个Dialog,上有adodc及datagrid,并用classwizard将为Dialog添加了两个变量及所有的类。但以下代码确不能达到让datagrid出现数据的目的.
        UpdateData(FALSE);
        CString cnstr,rsstr;
        cnstr=_T("driver={microsoft odbc for oracle};server=hosp;uid=hospital;pwd=hospital");
        m_adodc.SetConnectionString(cnstr);
        rsstr=_T("select * from thermometer");
        m_adodc.SetRecordSource(rsstr);  
        m_dataGrid.Refresh();
        UpdateData(TRUE);
请赐教。
我已经将datagrid的DataSource属性设好了。

解决方案 »

  1.   

    在设计时先将ADO的ConnectionString设置好,然后在程序中改变其SetRecordSource。
    并且要加一句:
    rsstr=_T("select * from thermometer");
    m_adodc.SetRecordSource(rsstr);
    m_adodc.Refresh();
    m_dataGrid.Refresh();
    UpdateData(TRUE);
    这样就能显示数据了用这种方法想在程序中动态地改变ADO的ConnectionString好象没有用,我试了,我也想这样做,可是不行。你知道后告诉我一下。
      

  2.   

    Adodc的所有属性都要设好,记录源的地方选1-CmdText,然后在下面的命令文本中输入一条sql语句,比如:select * from tablename,DataGrid的数据源要与Adodc控件绑定(也是在属性中设定的)
    在程序中:
        m_adodc.SetRecordSource(_T("select * from newtablename"));
        m_adodc.Refresh();
    就可以了,Datagrid不用refresh,也不用updatedata,昨天刚刚试过!至于动态改变数据源,我也仍在探索中。
      

  3.   

    不是我不想结贴,我是想找到答案?怎样改变ADODC的数据源,我不在乎这些分。
    明天再没答案,就结贴。
      

  4.   

    唉,早说嘛。
    改变数据源:
    m_adodc.SetConnectString(_T("Provider=SQLOLEDB.1;Password=;Persist Security Info=False;User ID=sa;Initial Catalog=newdb;Data Source=yourservername"));
    m_adodc.SetRecordSource(_T("select * from newtable"));
    这种方法只能连接本地服务器。如果要连网上的其他服务器,则要用IP地址,方法如下:
    m_adodc.SetConnectString(_T("Provider=SQLOLEDB; Data Source=xx.xx.xx.xx,1433; Network Library=DBMSSOCN; Initial Catalog=newdb;User ID=sa;Password=pass"));
    m_adodc.SetRecordSource(_T("select * from newtable"));
    其中的1433是数据库TCP/IP的端口号。
    这回差不多了吧?:)