MFC数据库连接异常
MFC数据库连接错误
单步执行时,显示数据库语句有误:
CString User::GetPassWord()
{
//连接数据库
ADOConn m_AdoConn;
m_AdoConn.OnInitDBConnect();
//设置select语句
_bstr_t vSQL;
vSQL="SELECT * FROM user WHERE name='"+m_Username+"'"; //显示该处有误
//执行SELECT
_RecordsetPtr m_pRecordset;
m_pRecordset=m_AdoConn.GetRecordSet(vSQL);
if(m_pRecordset->adoEOF)
User();
else
{
this->m_Username=m_Username;
this->m_Userpassword=(LPCTSTR)_bstr_t(m_pRecordset->GetCollect("password"));
//this->UserLevel=(LPCTSTR)_bstr_t(m_pRecordset->GetCollect("UserLevel"));
}
/* if(this->UserLevel=="Admin")
{
m_bisAdmin=TRUE;
}
else
{
m_bisAdmin=FALSE;
}
*/
//断开数据库的连接
m_AdoConn.ExitConnect();
return this->m_Userpassword;
}
//连接数据库的函数:无误
void ADOConn::OnInitDBConnect()
{
// 初始化COM,创建ADO连接等操作
::CoInitialize(NULL);
//AfxOleInit();
//创建Connection对象
m_pConnection.CreateInstance(__uuidof(Connection));
try
{
// 打开本地Access库
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=user.mdb","","",adModeUnknown);
}
//
catch(_com_error e)
{
AfxMessageBox("数据库连接失败,确认数据库ChxSystem.mdb是否在当前路径下!");
}
}
错误截图:
------解决方案--------------------
那句真没看出有什么错误
’符号换成英文的。。
------解决方案--------------------
表名叫user怕是不好吧
------解决方案--------------------
m_Username类型是否有问题
------解决方案--------------------
------解决方案--------------------
单步执行时,显示数据库语句有误:
CString User::GetPassWord()
{
//连接数据库
ADOConn m_AdoConn;
m_AdoConn.OnInitDBConnect();
//设置select语句
_bstr_t vSQL;
vSQL="SELECT * FROM user WHERE name='"+m_Username+"'"; //显示该处有误
//执行SELECT
_RecordsetPtr m_pRecordset;
m_pRecordset=m_AdoConn.GetRecordSet(vSQL);
if(m_pRecordset->adoEOF)
User();
else
{
this->m_Username=m_Username;
this->m_Userpassword=(LPCTSTR)_bstr_t(m_pRecordset->GetCollect("password"));
//this->UserLevel=(LPCTSTR)_bstr_t(m_pRecordset->GetCollect("UserLevel"));
}
/* if(this->UserLevel=="Admin")
{
m_bisAdmin=TRUE;
}
else
{
m_bisAdmin=FALSE;
}
*/
//断开数据库的连接
m_AdoConn.ExitConnect();
return this->m_Userpassword;
}
//连接数据库的函数:无误
void ADOConn::OnInitDBConnect()
{
// 初始化COM,创建ADO连接等操作
::CoInitialize(NULL);
//AfxOleInit();
//创建Connection对象
m_pConnection.CreateInstance(__uuidof(Connection));
try
{
// 打开本地Access库
m_pConnection->Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=user.mdb","","",adModeUnknown);
}
//
catch(_com_error e)
{
AfxMessageBox("数据库连接失败,确认数据库ChxSystem.mdb是否在当前路径下!");
}
}
错误截图:
------解决方案--------------------
那句真没看出有什么错误
’符号换成英文的。。
------解决方案--------------------
表名叫user怕是不好吧
------解决方案--------------------
m_Username类型是否有问题
------解决方案--------------------
------解决方案--------------------
- C/C++ code
CString strTmp; strTmp.Format(_T("SELECT * FROM user WHERE name='%s'"), m_Username); vSQL = (LPCTSTR)strTmp;
------解决方案--------------------
建议你打开一个access数据库,把你sql语句输入进去,看有问题没有。
------解决方案--------------------
------解决方案--------------------
在查询分析器上看 该语句有没有问题
看是不是语法的错误..