我使用ADO方式连接数据库sql server 2005,但是总是数据更新不了
首先软件已启动我就调用链接数据库的代码
bool CConToManageSys::OnConnectDatabase(void)
{
HRESULT hr;
//_ConnectionPtr m_pConnection;
/*if(!AfxOleInit())//AfxOleInit()是封装了OleInitialize()来初始化com组件
{ //不能使用俩次
AfxMessageBox((LPCTSTR)"COM组件初始化错误",0,0);//
return false;
}
else*/
{
try
{
hr=m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
if(SUCCEEDED(hr))
{
m_pConnection->ConnectionString="Provider=SQLOLEDB; Data Source=127.0.0.1; Initial Catalog=DB_Car; User ID=sa; Password=123456";
hr=m_pConnection->Open("","","",-1);
// MessageBox(_T("数据库连接成功"));
// hr = m_pConnection->Open( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb ", " ", " ",adModeUnknown);
///连接数据库 ///上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97,需要改为:Provider=Microsoft.Jet.OLEDB.3.51;
}
else
{
return false;
}
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format( _T("连接数据库失败!\r\n错误信息:%s "),e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
return false;
}
return true;
}
}
然后进入界面中需要把数据库中的数据更新到客户端中,代码如下
try
{
_variant_t RecordsAffected;
_bstr_t sno, sname,sage;
mysql.m_pRecordset = mysql.m_pConnection->Execute("select * from store",&RecordsAffected,adCmdText);
while(!mysql.m_pRecordset->adoEOF)
{//获取表中信息
mysql.m_pRecordset->MoveNext();
}
// AfxMessageBox("查询成功!");
}catch (_com_error e)
{
CString errormessage;
errormessage.Format(_T("查询失败!\r\n错误信息:%s"),e.ErrorMessage());
AfxMessageBox(errormessage);
return true;
}
但总是显示查询失败,弄了很久,不知道为什么,请教各位大侠帮忙一下
首先软件已启动我就调用链接数据库的代码
bool CConToManageSys::OnConnectDatabase(void)
{
HRESULT hr;
//_ConnectionPtr m_pConnection;
/*if(!AfxOleInit())//AfxOleInit()是封装了OleInitialize()来初始化com组件
{ //不能使用俩次
AfxMessageBox((LPCTSTR)"COM组件初始化错误",0,0);//
return false;
}
else*/
{
try
{
hr=m_pConnection.CreateInstance("ADODB.Connection");///创建Connection对象
if(SUCCEEDED(hr))
{
m_pConnection->ConnectionString="Provider=SQLOLEDB; Data Source=127.0.0.1; Initial Catalog=DB_Car; User ID=sa; Password=123456";
hr=m_pConnection->Open("","","",-1);
// MessageBox(_T("数据库连接成功"));
// hr = m_pConnection->Open( "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=test.mdb ", " ", " ",adModeUnknown);
///连接数据库 ///上面一句中连接字串中的Provider是针对ACCESS2000环境的,对于ACCESS97,需要改为:Provider=Microsoft.Jet.OLEDB.3.51;
}
else
{
return false;
}
}
catch(_com_error e)///捕捉异常
{
CString errormessage;
errormessage.Format( _T("连接数据库失败!\r\n错误信息:%s "),e.ErrorMessage());
AfxMessageBox(errormessage);///显示错误信息
return false;
}
return true;
}
}
然后进入界面中需要把数据库中的数据更新到客户端中,代码如下
try
{
_variant_t RecordsAffected;
_bstr_t sno, sname,sage;
mysql.m_pRecordset = mysql.m_pConnection->Execute("select * from store",&RecordsAffected,adCmdText);
while(!mysql.m_pRecordset->adoEOF)
{//获取表中信息
mysql.m_pRecordset->MoveNext();
}
// AfxMessageBox("查询成功!");
}catch (_com_error e)
{
CString errormessage;
errormessage.Format(_T("查询失败!\r\n错误信息:%s"),e.ErrorMessage());
AfxMessageBox(errormessage);
return true;
}
但总是显示查询失败,弄了很久,不知道为什么,请教各位大侠帮忙一下
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货