vs2008 MFC使用DataGrid控制元件繫結資料庫
1、首先在對話方塊上點選右鍵,選擇插入ActiveX控制元件,向下拖拉,找到MicrosoftDataGrid Control 6.0(SP6)(OLEDB),點選確定,在介面上會新增一個控制元件。
2、在介面上點選該控制元件後,點選右鍵增加控制變數m_dataGrid。
3、在對話方塊標頭檔案中增加:
#import "c:\program files\common files\system\ado\msado15.dll"no_namespace rename("EOF","adoEOF")
引入dll檔案;
4、在對話方塊類中新增變數宣告:
_ConnectionPtrm_pConnection;
_RecordsetPtrm_pRecordset;
5、在對話方塊初始化函式中增加 com初始化:
CoInitialize(NULL);
6、增加對話方塊對WM_DESTROY的處理,在OnDestroy函式中增加關閉操作:
m_pRecordset->Close(); //關閉記錄集
if(m_pConnection->State)
{
m_pConnection->Close();
}
CoUninitialize(); //關閉com環境
7、連線資料庫操作,單獨寫一個函式。
void
{
m_pConnection.CreateInstance("ADODB.Connection");
try
{
m_pConnection->ConnectionTimeout= 8;
m_pConnection->PutCursorLocation(adUseClient);
m_pConnection->Open("Provider=Microsoft.ACE.OLEDB.12.0;DataSource=D:\\test\\testAccess\\Debug\\Demo.mdb;"
}
catch(_com_error e)
{
AfxMessageBox("資料庫連線失敗");
return;
}
//---------初始化記錄集物件---------------//
try
{
m_pRecordset.CreateInstance("ADODB.Recordset");
//開啟記錄集
m_pRecordset->Open("SELECT * FROM DemoTable",_variant_t((IDispatch*)m_pConnection,true),adOpenDynamic,adLockPessimistic,adCmdText);
}
catch(_com_error e)///捕捉異常
{
CStringtemp;
temp.Format("aaa連線資料庫錯誤資訊:%s",e.ErrorMessage());
AfxMessageBox(temp);
return;
}
m_dataGrid.putref_DataSource(NULL);
m_dataGrid.putref_DataSource((LPUNKNOWN)m_pRecordset);
m_dataGrid.Refresh();
}