用了这个控件microsoft DataGrid Control 6.0 (sp5)(oledb) 想把表中的数据显示在一个 dialog上,总是出现错误,没有用另外一个ADOC这个控件。以下是我代码大家看看哪里出错,谢谢!或给一个完整的例子。BOOL CWarehouse::OnInitDialog()
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
((CButton *)GetDlgItem(IDC_BUTTON_ADD))->SetBitmap(m_bitAdd);
((CButton *)GetDlgItem(IDC_BUTTON_DEL))->SetBitmap(m_bitDel);
((CButton *)GetDlgItem(IDC_BUTTON_MOD))->SetBitmap(m_bitMod);
((CButton *)GetDlgItem(IDC_BUTTON_CANCAL))->SetBitmap(m_bitCancal);
//////////////////ADO和DBGrid邦丁///////////////////////////////
::CoInitialize(NULL);
HRESULT hr; try
{
// _ConnectionPtr m_pConnection("ADODB.Connection");
// _RecordsetPtr m_pRecordset("ADBDB.Recrodset");
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
hr = m_pConnection.CreateInstance("ADODB.Connection");
hr = m_pConnection->Open("Provider=SQLOLEDB.1;Password=bobshi;Persist Security Info=True;User ID=bobshi;Initial Catalog=Jxc;Data Source=JONATHAN;","","",adModeUnknown);
//m_pConnection->Open("Provider=SQLOLEDB.1;Password=bobshi;Persist Security Info=True;User ID=bobshi;Initial Catalog=Jxc;Data Source=JONATHAN;","","",adModeUnknown);
CString sql="select * from tb_warehouse_info";
m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
//m_grid.SetRefDataSource(m_pRecordset.Detach());
m_grid.SetRefDataSource(NULL);
m_grid.SetRefDataSource(LPUNKNOWN(m_pRecordset));
UpdateData(FALSE); }
catch (_com_error &e) { char mybuf[10240]; wsprintf(mybuf,"Description = '%s'\n", (char*) e.Description()); AfxMessageBox(mybuf); } ////////////////////////////////////////////////////////////////
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
{
CDialog::OnInitDialog();
// TODO: Add extra initialization here
((CButton *)GetDlgItem(IDC_BUTTON_ADD))->SetBitmap(m_bitAdd);
((CButton *)GetDlgItem(IDC_BUTTON_DEL))->SetBitmap(m_bitDel);
((CButton *)GetDlgItem(IDC_BUTTON_MOD))->SetBitmap(m_bitMod);
((CButton *)GetDlgItem(IDC_BUTTON_CANCAL))->SetBitmap(m_bitCancal);
//////////////////ADO和DBGrid邦丁///////////////////////////////
::CoInitialize(NULL);
HRESULT hr; try
{
// _ConnectionPtr m_pConnection("ADODB.Connection");
// _RecordsetPtr m_pRecordset("ADBDB.Recrodset");
_ConnectionPtr m_pConnection;
_RecordsetPtr m_pRecordset;
hr = m_pConnection.CreateInstance("ADODB.Connection");
hr = m_pConnection->Open("Provider=SQLOLEDB.1;Password=bobshi;Persist Security Info=True;User ID=bobshi;Initial Catalog=Jxc;Data Source=JONATHAN;","","",adModeUnknown);
//m_pConnection->Open("Provider=SQLOLEDB.1;Password=bobshi;Persist Security Info=True;User ID=bobshi;Initial Catalog=Jxc;Data Source=JONATHAN;","","",adModeUnknown);
CString sql="select * from tb_warehouse_info";
m_pRecordset.CreateInstance("ADODB.Recordset"); m_pRecordset->Open((_variant_t)sql,_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);
//m_grid.SetRefDataSource(m_pRecordset.Detach());
m_grid.SetRefDataSource(NULL);
m_grid.SetRefDataSource(LPUNKNOWN(m_pRecordset));
UpdateData(FALSE); }
catch (_com_error &e) { char mybuf[10240]; wsprintf(mybuf,"Description = '%s'\n", (char*) e.Description()); AfxMessageBox(mybuf); } ////////////////////////////////////////////////////////////////
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
看看这个吧