现急需这样的一个小程序,程序是SDI类型,运行时先显示用登录对话框,用户输入自己的工号和口令,根据用户输入的工号,到数据库中查找到相应的口令再与用户输入的口令对比,一致则通过,显示SDI界面(只要框界即可),不一致,显示消息框提示错误,
数据库:xt_czyml(操作员目录) 字段:id(工号),pass(口令)
要求:ADO技术实现!
个人信箱:[email protected]
300分,绝不食言,解决之后,兄弟马上给,急!急!急!
数据库:xt_czyml(操作员目录) 字段:id(工号),pass(口令)
要求:ADO技术实现!
个人信箱:[email protected]
300分,绝不食言,解决之后,兄弟马上给,急!急!急!
CoInitialize(NULL);
//————————————————————————————————————
//作登录验证,如果验证不成功,则退出系统
CLogin dlgLogin;
//弹出登陆对话框
if(dlgLogin.DoModal()==IDCANCEL)
{
return FALSE;//如果取消,则退出
}
CString sql = "select * from admin where id =";
CString str =dlgLogin.m_strUser;//得到所需项的字符
sql +="'";
sql +=str;
sql+= "'";try
{
//建立与数据库的连接
m_pConn.CreateInstance(__uuidof(Connection)); m_pConn->Open("DSN=dsnname;UID=user;PWD=pwd","","",-1);
}
catch(...)
{
AfxMessageBox("数据库初始化错误,程序将关闭!");
return FALSE;
} CString password; _RecordsetPtr m_pRecordSet;//定义纪录集对象
FieldsPtr m_pFieldsPtr;
FieldPtr m_pFieldPtr;
m_pRecordSet.CreateInstance(__uuidof(Recordset)); try
{
m_pRecordSet->Open(_variant_t(sql),
m_pConn.GetInterfacePtr(),
adOpenDynamic,
adLockOptimistic,
adCmdText);
m_pFieldsPtr = m_pRecordSet->Fields; CString str;
m_pFieldPtr = m_pFieldsPtr->Item["Pass"];
str.Format((char*)_bstr_t(m_pFieldPtr->Value));
str.TrimRight();
password=str; m_pRecordSet->Close();
}
catch(_com_error *e)
{
AfxMessageBox(e->ErrorMessage());
}
catch(...)
{
AfxMessageBox("不存在的用户名,你无权登陆本系统!\n请与系统管理员联系,谢谢!");
return FALSE;
} if(password==dlgLogin.m_strPassword)
{
m_strOperator=dlgLogin.m_strUser;
m_strPassword=dlgLogin.m_strPassword;
}
else
{
AfxMessageBox("密码不正确,你没有权利登陆本系统!如要登陆,请与系统管理员联系");
return FALSE;
}
//登录验证,完成
//————————————————————————————————————