<h3>刚开始学习MFC ,上网查了下与SQLServer相关的操作,主要是增删查改,自己给封装好,这里贴出了给自己备个份,顺便共享下,嘻嘻</h3>
在stdafx.h文件中需要添加#import ".\ADO\msado15.dll" no_namespace rename("EOF", "adoEOF") rename("BOF", "adoBOF") 我是自己改的路径将msado15.dll文件考到自己的路径下的,可以使用:C:\Program Files\Common Files\System\ado\msado15.dll这是windows自带的
#pragma once
//AdoDatabase.h文件
class AdoDatabase
{
public:
AdoDatabase(void);
~AdoDatabase(void);
_ConnectionPtr m_pConnection;//连接数据库智能指针
_variant_t RecordsAffected;//操作完成后所影响的行数
_RecordsetPtr m_pRecordset; //记录集对象,执行返回结果存储的容器
// 连接数据库
BOOL ConnectDB(void);
// 关闭数据库
BOOL CloseConn(void);
// 执行sql语句
BOOL ExecuteSQL(CString sqlstr,CString typeStr);
// 向数据库中插入数据
BOOL InsertStrData(CString sqlstr);
// 更新数据库数据
BOOL UpdateStrData(CString sqlstr);
// 查询数据库数据
BOOL SelectStrData(CString sqlstr);
// 删除
BOOL DeleteStrData(CString sqlstr);
// 查询语句执行
BOOL ExecuteSelSQL(CString sqlstr);
};
<h3>刚开始学习MFC ,上网查了下与SQLServer相关的操作,主要是增删查改,自己给封装好,这里贴出了给自己备个份,顺便共享下,嘻嘻</h3>
在stdafx.h文件中需要添加#import ".\ADO\msado15.dll" no_namespace rename("EOF", "adoEOF") rename("BOF", "adoBOF") 我是自己改的路径将msado15.dll文件考到自己的路径下的,可以使用:C:\Program Files\Common Files\System\ado\msado15.dll这是windows自带的#pragma once
//AdoDatabase.h文件
class AdoDatabase
{
public:
AdoDatabase(void);
~AdoDatabase(void);
_ConnectionPtr m_pConnection;//连接数据库智能指针
_variant_t RecordsAffected;//操作完成后所影响的行数
_RecordsetPtr m_pRecordset; //记录集对象,执行返回结果存储的容器
// 连接数据库
BOOL ConnectDB(void);
// 关闭数据库
BOOL CloseConn(void);
// 执行sql语句
BOOL ExecuteSQL(CString sqlstr,CString typeStr);
// 向数据库中插入数据
BOOL InsertStrData(CString sqlstr);
// 更新数据库数据
BOOL UpdateStrData(CString sqlstr);
// 查询数据库数据
BOOL SelectStrData(CString sqlstr);
// 删除
BOOL DeleteStrData(CString sqlstr);
// 查询语句执行
BOOL ExecuteSelSQL(CString sqlstr);
};
//AdoDatabase.cpp
#include "StdAfx.h"
#include "AdoDatabase.h"
AdoDatabase::AdoDatabase(void)
{
}
AdoDatabase::~AdoDatabase(void)
{
}
// 连接数据库
BOOL AdoDatabase::ConnectDB(void)
{
::CoInitialize(NULL);
try
{
//m_pConnection.CreateInstance(__uuidof(Connection));
//m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Northwind.mdb","","",adModeUnknown);
m_pConnection.CreateInstance(_T("ADODB.Connection"));//创建connections对象
_bstr_t strConnect="Provider=SQLOLEDB.1;User ID=cqf;Password=123;Persist Security Info =false;Data Source=10.6.11.38,1433;Initial Catalog=lanmonitor";
m_pConnection->Open(strConnect,"","",adModeUnknown);
}
catch(_com_error e)
{
CString errormessage;
errormessage.Format("连接数据库失败!\r错误信息:%s",e.ErrorMessage());
AfxMessageBox(errormessage);
return -1;
}
return 0;
}
// 关闭数据库
BOOL AdoDatabase::CloseConn(void)
{
if(m_pRecordset!=NULL)//如果不为空则关闭数据集
{
m_pRecordset->Close();
m_pRecordset=NULL;
}
if(m_pConnection->State)
{
m_pConnection->Close();
m_pConnection=NULL;
}
return 0;
}
// 执行sql语句
BOOL AdoDatabase::ExecuteSQL(CString sqlstr,CString typeStr)
{
try
{
_bstr_t strCmd=sqlstr;//"INSERT INTO Employees(EmployeeID,FirstName,LastName,HireDate,City,Country) VALUES(10,'Mary','Williams','15/4/1993 12:00:00','New York','USA')";
m_pConnection->Execute(strCmd,&RecordsAffected,adCmdText);
}
catch(_com_error &e)
{
AfxMessageBox(e.Description()+":"+typeStr);
return -1;
}
return 0;
}
// 向数据库中插入数据
BOOL AdoDatabase::InsertStrData(CString sqlstr)
{
return ExecuteSQL(sqlstr,"Insert!");
}
// 更新数据库数据
BOOL AdoDatabase::UpdateStrData(CString sqlstr)
{
return ExecuteSQL(sqlstr,"Update!");
}
// 查询数据库数据
BOOL AdoDatabase::SelectStrData(CString sqlstr)
{
m_pRecordset.CreateInstance("ADODB.Recordset"); //为Recordset对象创建实例
return ExecuteSelSQL(sqlstr);
}
// 删除
BOOL AdoDatabase::DeleteStrData(CString sqlstr)
{
return ExecuteSQL(sqlstr,"Select!");
}
// 查询语句执行
BOOL AdoDatabase::ExecuteSelSQL(CString sqlstr)
{
try
{
_bstr_t strCmd=sqlstr;//"INSERT INTO Employees(EmployeeID,FirstName,LastName,HireDate,City,Country) VALUES(10,'Mary','Williams','15/4/1993 12:00:00','New York','USA')";
m_pRecordset=m_pConnection->Execute(strCmd,&RecordsAffected,adCmdText);
}
catch(_com_error &e)
{
AfxMessageBox(e.Description());
return -1;
}
return 0;
}

本文介绍了一个基于MFC的简单数据库操作封装类,包括连接SQL Server、执行增删查改等基本操作。通过该封装类,可以方便地进行数据库操作。
986

被折叠的 条评论
为什么被折叠?



