{
public:
DBConnection(void)
~DBConnection(void)
int OpenConnect(void)
int ExecuteSQL(_bstr_t strCmd)
_RecordsetPtr GetRecondSetPrt()
private:
_ConnectionPtr m_pConnection //链接数据库德指针变量
_RecordsetPtr m_pRecordset//指向记录集的指针
_variant_t RecordsAffected//受影响的记录条数
}
DBConnection::DBConnection(void)
{
m_pConnection=NULL
m_pRecordset=NULL
}
DBConnection::~DBConnection(void)
{
m_pConnection=NULL
m_pRecordset=NULL
}
//打开数据库链接
int DBConnection::OpenConnect(void)
{
try
{
//创建连接对象
m_pConnection.CreateInstance("ADODB.Connection")
//设置连接字符串
_bstr_t strConnect ="Provider=SQLOLEDBData Source=20110121-1545\\SQLEXPRESS\
Initial Catalog=ExpManDBUser ID=saPWD=123"
//设置连接超时时间为5秒
m_pConnection->ConnectionTimeout = 5
//连接数据库
m_pConnection->Open(strConnect, "", "", adModeUnknown)
return 1
}
catch(_com_error e)
{
CString errorMsg
errorMsg.Format(_T("连接数据库失败!\r错误信息:%s"),(LPCSTR)e.ErrorMessage())
AfxMessageBox(errorMsg)
return 0
}
}
//返回受影响的记录条数
int DBConnection::ExecuteSQL(_bstr_t strCmd)
{
if(m_pConnection->State)
{
try
{
m_pRecordset.CreateInstance("ADODB.Recordset")//为Recordset对象创建实例
//执行SQL语句,并返回受影响的记录条数
m_pRecordset=m_pConnection->Execute(strCmd,&RecordsAffected,adCmdText)
return RecordsAffected.intVal
}
catch(_com_error &e)
{
AfxMessageBox(e.Description())
return 0
}
}
return 0
}
//返回记录集以便后续使用
_RecordsetPtr DBConnection::GetRecondSetPrt()
{
return m_pRecordset
}
可以像这样使用,strCmd为sql语句
DBConnection dbConnector
if(dbConnector.OpenConnect() == 0)
{
return
}
if(dbConnector.ExecuteSQL((_bstr_t)strCmd) == 0)
{
return
}
当然如果你还需要取出数据的时候可以这样用
_RecordsetPtr pRecordSet
pRecordSet=dbConnector.GetRecondSetPrt()
_variant_t vCardNo
vCardNo = pRecordSet->GetCollect("cardNO")//得到数据表种cardNO字段
后面_variant_t类型就可以转换为int float CString等各种类型了。
如果有什么问题再交流。
cdaodatabase*m_pdatabase
cdaorecordset*
m_precordset
m_pdatabase=new
cdaodatabase
try
{
m_pdatabase->open("dbstu.mdb")
m_precordset=new
cdaorecordset(m_pdatabase)
}
以上是建立数据库连接和数据集对象,有了m_precordset对象,就可以对数据库进行查询 *** 作。
cstring
strselect(_t("select
*
from
["))
strselect
+=tbstu
strselect
+=
_t("]")
m_precordset->open(dbopendynaset,strselect)
查询stuid:
sql="select
*
from
tbstu
where
stuid="+id
如果stuid是字符串类型的:
sql="select
*
from
tbstu
where
stuid='"+id+"'"
你的数据库是不是放在程序文件一个目录?如果不是修改一下。m_pdatabase->open("dbstu.mdb")
还有在文件头添加:#include
CDatabase类用与和数据库进行连接、断开、插入...的 *** 作。CRecordSet类用与在数据库中读取数据。
你想向数据库中插入数据,就用CDatabase类就可以了。
SQL语句你知道吗?就是“insert into”什么的。
例如:
CDatabase* m_Database;
//你已经和数据库连接上了是吗?没有的话先连接上。
// m_Database->OpenEx(str, CDatabase::noOdbcDialog));
// str 是数据源。
//然后就向库中插入数据吧!
CString strSQL
strSQL.Format("//一条SQL语句,就是insert into")
m_Database->ExecuteSQL(strSQL)
//这样就OK了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)