用户登录框中,如何解决binary、varchar类型的字段间的数据转换
我建了一张表,里面有两个字段 UserName(数据类型varchar) UserCode (数据类型binary)
我的程序代码如下:
void CMainFrame::OnSystemLogon()
{
CDlgUserLogon dlg;
if (dlg.DoModal() != IDOK)
return;
_variant_t var;
CString strUserName,strUserCode;
m_pRecordset->Open("SELECT UserName,cast(UserCode AS varchar) FROM UserInfo", _variant_t((IDispatch*)m_pConnection),adOpenDynamic,adLockOptimistic,adCmdText);
if(!m_pRecordset->BOF)
{
m_pRecordset->MoveFirst();
while(!m_pRecordset->adoEOF)
{
var = m_pRecordset->GetCollect("UserName");
if(var.vt != VT_NULL)
strUserName = (LPCSTR)_bstr_t(var);
var = m_pRecordset->GetCollect("UserCode");
// var = m_pRecordset->GetCollect("UserCode ");
if(var.vt != VT_NULL)
strUserCode = (LPCSTR)_bstr_t(var);
if ((dlg.m_strUserName != strUserName) && dlg.m_strUserCode!= strUserCode))
{
MessageBox("用户名或密码错误!");
}
m_pRecordset->MoveNext();
}
}
m_pRecordset->Close();
}
结果我即使输入正确的用户名和密码也会弹出“用户名或密码错误”,这是什么原因啊?
各位高手能否指点?
补充说明一下:
dlg.m_strUserName 如cxz
dlg.m_strUserCode 如111
是我在用户登录框输入的字符串
其中记录cxz 111已经是UserInfo表中的一条记录了