现急需这样的一个小程序,程序是SDI类型,运行时先显示用登录对话框,用户输入自己的工号和口令,根据用户输入的工号,到数据库中查找到相应的口令再与用户输入的口令对比,一致则通过,显示SDI界面(只要框界即可),不一致,显示消息框提示错误,
数据库:xt_czyml(操作员目录) 字段:id(工号),pass(口令)
要求:ADO技术实现!
个人信箱:[email protected]
300分,绝不食言,解决之后,兄弟马上给,急!急!急!

解决方案 »

  1.   

    //初始化ADO库
    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;
    }
    //登录验证,完成
    //————————————————————————————————————
      

  2.   

    因为不清楚你的资源设定,所以你需要修改一些东西,比如数据库名称,表名称等。如果还不清楚,给我mail吧:[email protected]