1、在stdafx.h先引入ADO
#import "C:\Program Files\Common Files\system\ado\msado15.dll" no_namespace rename("EOF","adoEOF")
2、头文件
//创建连接对象保持
_ConnectionPtr m_pConnectionSqlServer;
_ConnectionPtr m_pConnectionAccess;
3、构造函数中创建连接
CAdoTestDlg::CAdoTestDlg(CWnd* pParent /*=NULL*/)
: CDialogEx(CAdoTestDlg::IDD, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
if (!SUCCEEDED(m_pConnectionSqlServer.CreateInstance(__uuidof(Connection))))
{
m_pConnectionSqlServer = NULL;
AfxMessageBox(_T("创建连接对象失败"));
//return;
}
if (!SUCCEEDED(m_pConnectionAccess.CreateInstance(__uuidof(Connection))))
{
m_pConnectionAccess = NULL;
AfxMessageBox(_T("创建连接对象失败"));
//return;
}
}
4、打开连接 与关闭连接
void CAdoTestDlg::OnBnClickedOpenSqlserver()
{
// TODO: 在此添加控件通知处理程序代码
if (m_pConnectionSqlServer->State & adStateOpen)
{
AfxMessageBox(_T("Sql Server 连接已经打开"));
return;
}
//AfxMessageBox(_T("创建连接对象是否成功"));
CString strConn = _T("Provider=SQLOLEDB.1;User ID=sa;Password=root123;Persist Security Info=True;Data Source=DESKTOP-THH64TH;Initial Catalog=MyDatabaseOne");
if (SUCCEEDED(m_pConnectionSqlServer->Open(_bstr_t(strConn), _T(""), _T(""), adConnectUnspecified)))//传入连接字符串
{
AfxMessageBox(_T("打开SQL Server 连接成功"));
}
else
{
AfxMessageBox(_T("代开失败"));
}
}
void CAdoTestDlg::OnBnClickedCloseSqlserver()
{
// TODO: 在此添加控件通知处理程序代码
//关闭连接
if (!(m_pConnectionSqlServer->State&adStateOpen))
{
AfxMessageBox(_T("未打开连接"));
return;
}
if (SUCCEEDED(m_pConnectionSqlServer->Close()))
{
AfxMessageBox(_T("关闭成功"));
}
else
{
AfxMessageBox(_T("关闭失败"));
}
}
void CAdoTestDlg::OnBnClickedOpenAccess()
{
// TODO: 在此添加控件通知处理程序代码
// TODO: 在此添加控件通知处理程序代码
if (m_pConnectionAccess->State & adStateOpen)
{
AfxMessageBox(_T("Sql Server 连接已经打开"));
return;
}
//AfxMessageBox(_T("创建连接对象是否成功"));
//CString strConn = _T("Provider=SQLOLEDB.1;User ID=sa;Password=root123;Persist Security Info=True;Data Source=DESKTOP-THH64TH;Initial Catalog=MyDatabaseOne");
CString strConn = _T("Provider=Microsoft.ACE.OLEDB.12.0;;Data Source=C:\\Users\\admin\\Desktop\\DataBaseDome.mdb");
if (SUCCEEDED(m_pConnectionAccess->Open(_bstr_t(strConn), _T(""), _T(""), adConnectUnspecified)))//传入连接字符串
{
AfxMessageBox(_T("打开SQL Access 连接成功"));
}
else
{
AfxMessageBox(_T("代开失败"));
}
}
void CAdoTestDlg::OnBnClickedCloseAccess()
{
// TODO: 在此添加控件通知处理程序代码
if (!(m_pConnectionAccess->State&adStateOpen))
{
AfxMessageBox(_T("未打开连接"));
return;
}
if (SUCCEEDED(m_pConnectionAccess->Close()))
{
AfxMessageBox(_T("关闭成功"));
}
else
{
AfxMessageBox(_T("关闭失败"));
}
}