天天看點

VC++ 中MSDataGrid控件的使用

VC 6.0;建立一個對話框工程;

在對話框中插入ActiveX控件;沒有;

VC++ 中MSDataGrid控件的使用

下載下傳;包含如下三個檔案;

VC++ 中MSDataGrid控件的使用

OCX和DLL放到System32目錄;注冊;

VC++ 中MSDataGrid控件的使用
VC++ 中MSDataGrid控件的使用

再插入,有了;

VC++ 中MSDataGrid控件的使用

放一個datagrid控件到對話框界面;資料庫檔案在項目檔案夾下;

VC++ 中MSDataGrid控件的使用

在stdafx.h中加入下圖#import一句;

VC++ 中MSDataGrid控件的使用

在類向導中為datagrid控件添加成員變量;彈出下圖提示;

VC++ 中MSDataGrid控件的使用

确定;彈出下圖;點OK;

VC++ 中MSDataGrid控件的使用

輸入DataGrid控件的成員變量名稱;

VC++ 中MSDataGrid控件的使用

對話框類添加了一個成員變量;

VC++ 中MSDataGrid控件的使用

自動生成的代碼如下;該成員變量加到對話框類的頭檔案中;

VC++ 中MSDataGrid控件的使用

工程中将添加如下檔案;

VC++ 中MSDataGrid控件的使用

運作一下程式;出現下圖錯誤;

VC++ 中MSDataGrid控件的使用
VC++ 中MSDataGrid控件的使用

在項目設定中下圖位置,選擇靜态連結;

VC++ 中MSDataGrid控件的使用

在對話框的初始化成員函數添加如下代碼;

VC++ 中MSDataGrid控件的使用

所添加的代碼;

// TODO: Add extra initialization here
	_RecordsetPtr m_Precord;
	_ConnectionPtr m_Pconn; 

	try
	{
		m_Pconn.CreateInstance(__uuidof(Connection));
		CString SQL=_T("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=英語.mdb");
		m_Pconn->Open((_bstr_t)SQL,(_bstr_t)_T(""),(_bstr_t)_T(""),adModeUnknown);
	}
	catch(_com_error e)
	{		
		MessageBox(e.ErrorMessage(),_T("連接配接錯誤"),MB_OK|MB_ICONERROR);
	}
	try
	{
		m_Precord.CreateInstance(__uuidof(Recordset));
		CString SQL = _T("select * from ENG");
		m_Precord->CursorLocation = adUseClient;
		m_Precord->Open((_variant_t)SQL,_variant_t(m_Pconn,true),adOpenStatic,adLockOptimistic,adCmdText);
		m_datagrid1.SetCaption(_T("英語"));
		int nrow = m_Precord->GetRecordCount();   
		int ncol = m_Precord->GetFields()->Count;   
		m_datagrid1.SetRefDataSource((LPUNKNOWN)m_Precord); 
		m_datagrid1.Refresh(); 
	}
	catch(_com_error e)
	{	
		MessageBox(e.ErrorMessage(),_T("連接配接錯誤"),MB_OK|MB_ICONERROR);
	}
           

運作程式;結果如下圖; 

VC++ 中MSDataGrid控件的使用