void CDlgUserlogin::OnBnClickedOk()
{
UpdateData(true);
m_cName.Trim();
sql = "SELECT * FROM Operator WHERE Name = '" + m_cName + "'";
if(!m_adoacct.GetRecordset(sql,pRs))
{
AfxMessageBox("该用户名不存在!!!");
m_adoacct.CloseRecordset(pRs);
return;
} m_adoacct.CloseRecordset(pRs);
OnOK();
}比如说用户名m_cName在数据库中是小写的,但我输入大写登录时也可以在数据库中找到记录,为什么??是不是在数据库中就不分大小写??谢谢!
{
UpdateData(true);
m_cName.Trim();
sql = "SELECT * FROM Operator WHERE Name = '" + m_cName + "'";
if(!m_adoacct.GetRecordset(sql,pRs))
{
AfxMessageBox("该用户名不存在!!!");
m_adoacct.CloseRecordset(pRs);
return;
} m_adoacct.CloseRecordset(pRs);
OnOK();
}比如说用户名m_cName在数据库中是小写的,但我输入大写登录时也可以在数据库中找到记录,为什么??是不是在数据库中就不分大小写??谢谢!
SELECT Name FROM Operator WHERE Name = '" + m_cName + "'";
这样你可能能查出多个结果,你再在内存里比较
区分大小写是在数据库中实现!
HRESULT hr;
AdoNS::_RecordsetPtr pRecordset;
_variant_t vUsername,vBirthday,vID,vOld;
pRecordset.CreateInstance("ADODB.Recordset");
pRecordset->Open((_bstr_t)strSQL,_variant_t((IDispatch*)m_pConnection,true),AdoNS::adOpenStatic,AdoNS::adLockOptimistic,AdoNS::adCmdText);
bool bExist=false;//用来标识用户是否存在
//下面记录集里查到的是有大写也有小写的,如果你要区分大小写可能不只一个
while(!pRecordset->adoEOF)
{
CString strName=pRecordset->GetCollect(0).bstrVal;
if(m_cName==strName)
{
bExist=true;
break;
}
}
pRecordset->Close();
if(!bExist)
{
MessageBox("用户不存在!");
}
CString strSQL="SELECT name FROM Operator WHERE Name = '" + m_cName + "'";
access数据库就不知道了,呵呵