MFC VC ADO链接SQL Server数据库 操作数据库数据


//1.包含ADO包,在stdafx.h中添加下面的代码:

#import "c:\program files\common files\system\ado\msado15.dll" no_namespace rename("EOF", "adoEOF")

//2.初始化COM库
AfxOleInit();

//3.创建连接实例
m_pConnection.CreateInstance(__uuidof(Connection));
try
{

//4.连接数据库, Server:对应服务器名字,我的服务器名字叫做TGZ。如果想要远程连接SQL数据库,就需要把TGZ该为要连接的数据库所在主机的IP,master该为你需要连接的数据库名,UID是登录时的名称,一般是sa,PWD是登录密码。

m_pConnection->Open("driver={SQL Server};Server=TGZ;Database=master;UID="";PWD=""","","",adModeUnknown);
}
catch(_com_error e)
{
AfxMessageBox(_T("数据库连接失败!"));
return FALSE;
}


//5.创建数据集实例
m_pRecordset.CreateInstance(__uuidof(Recordset));
HRESULT hr;
//CString sql = "select * from photo";
try
{
//6.执行sql语句,可以是删除、修改、查询语句
hr = m_pRecordset->Open( "select * from photo", theApp.m_pConnection.GetInterfacePtr(),adOpenDynamic,adLockOptimistic,adCmdText);


}
catch (_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
return FALSE;


}


//如果是查询语句,循环所有数据集,及每一条数据
CString res;
CString name;
CString pwd;
int i = 0;
if(hr == S_OK)
{
//移到第一条数据
m_pRecordset->MoveFirst();


//如果有数据,有的不是adoEOF, 是rsEOF
while(!m_pRecordset->adoEOF)
{
//获取相应字段的值
res = m_pRecordset->GetCollect("id");
name = m_pRecordset->GetCollect("name");
pwd = m_pRecordset->GetCollect("pwd");

//移动到下一条
m_pRecordset->MoveNext();
i++;
}
}
//增加一条新记录
m_pRecordset->AddNew();
m_pRecordset->PutCollect("id", i);
m_pRecordset->PutCollect("name", "33");
m_pRecordset->PutCollect("pwd", "33");

//只有更新以后才能真正起效,在数据库表中显示出来
m_pRecordset->Update();

你可能感兴趣的:(MFC,VC,SQL,Server,数据库,操作SQL数据库数据,MFC,VC,SQL,Server,数据库连接,操作SQL数据库数据,远程连接SQL,Server数据库)