C++打开数据库 SQLSever Access

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("关闭失败"));
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值