一、新建工程access数据库,基本对话框。
二、添加类
Class Type:Generic Class
Name: CADOConn
三、在ADOConn.h中加
。。。。。。。。。。。。。。。
#define AFX_ADOCONN_H__15D0A1C8_EEF1_419C_A48B_A08BF8F60FD6__INCLUDED_
#import "c:\Program Files\Common Files\System\ado\msado15.dll"no_namespace \
rename("EOF","adoEOF")rename("BOF","adoBOF")
#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
class CADOConn
{
public:
CADOConn();
virtual ~CADOConn();
//添加一个指向Connection对象的指针
_ConnectionPtr m_pConnection;
//添加一个指向Recordset对象的指针
_RecordsetPtr m_pRecordset;
};
#endif // !defined(AFX_ADOCONN_H__15D0A1C8_EEF1_419C_A48B_A08BF8F60FD6__INCLUDED_)
四、在类CADOConn中加成员函数
Function Type:void
Function Declaration:OnInitADOConn()
Access:Public
五、加入代码
void CADOConn::OnInitADOConn()
{
//初始化OLE/COM库环境
::CoInitialize(NULL);
try
{
//创建connection对象
m_pConnection.CreateInstance("ADODB.Connection");
//设置连接字符串
_bstr_t strConnect="uid=;pwd=;DRIVER={Microsoft Access Driver (*.mdb)};DBQ=database.mdb;";
//SERVER和UID,PWD的设置根据实际情况来设置
m_pConnection->Open(strConnect,"","",adModeUnknown);
}
//捕捉异常
catch(_com_error e)
{
//显示错误信息
AfxMessageBox(e.Description());
}
}
六、类CADOConn中加成员函数
Function Type:void
Function Declaration:ExitConnect()
Access:Public
七、加入代码
void CADOConn::ExitConnect()
{
//关闭记录集和连接
if(m_pRecordset!=NULL)
m_pRecordset->Close();
m_pConnection->Close();
//释放环境
::CoUninitialize();
}
八、加成员函数同时加入代码
Function Type:_RecordsetPtr&
Function Declaration:GetRecordSet(_bstr_t bstrSQL)
Access:Public
_RecordsetPtr& CADOConn::GetRecordSet(_bstr_t bstrSQL)
{
try
{
if(m_pConnection==NULL)
OnInitADOConn();
m_pRecordset.CreateInstance(__uuidof(Recordset));
m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);
}
catch(_com_error e)
{
e.Description();
}
return m_pRecordset;
}
九、加入一个列表框控件
ID: IDC_LIST1
变量名:m_grid 类型:CListCtrl
BOOL CAccessDlg::OnInitDialog()
{
CDialog::OnInitDialog();
。。。。。。。。。。。。。。。。。。。。。。。。。。
// TODO: Add extra initialization here
m_grid.SetExtendedStyle(LVS_EX_FLATSB
|LVS_EX_FULLROWSELECT
|LVS_EX_HEADERDRAGDROP
|LVS_EX_ONECLICKACTIVATE
|LVS_EX_GRIDLINES);
m_grid.InsertColumn(0,"编号",LVCFMT_LEFT,100,0);
m_grid.SetColumnWidth(0 ,180);
return TRUE; // return TRUE unless you set the focus to a control
}
十、access数据库Dlg.cpp加入#include "ADOConn.h"
十一、 加成员函数
Function Type:void
Function Declaration:AddToGrid()
Access:Public
在OnInitDialog()中加入代码
。。。。。。。。。。。。。。。。。。。。。。。。。
m_grid.SetColumnWidth(0 ,180);
AddToGrid();
return TRUE; // return TRUE unless you set the focus to a control
}
在AddToGrid()中加入代码
void CAccessDlg::AddToGrid()
{
CADOConn m_AdoConn;
m_AdoConn.OnInitADOConn();
CString sql;
sql.Format("select* from txl1 order by id desc");
_RecordsetPtr m_pRecordset;
m_pRecordset = m_AdoConn.GetRecordSet((_bstr_t)sql);
while(m_AdoConn.m_pRecordset->adoEOF==0)
{
m_grid.InsertItem(0,"");
m_grid.SetItemText(0,0,(char*)(_bstr_t)m_pRecordset->GetCollect("name"));
m_pRecordset->MoveNext();
}
m_AdoConn.ExitConnect();
}
|