我有2个编辑框。一个是要输入登陆用户,一个是用来输入密码的。
我建立了数据库存了个表保存密码和用户。select * from staff where UserID=/*编辑框里的要填的用户*/,
                      and Password=/*编辑框里的要填的用户*/我想问的问题是:用什么“方法”调用来验证啊。我不懂啊。高手告诉我一下。我很急!!!

解决方案 »

  1.   

    晕,调用ADO执行SQL返回的纪录集不为空的话,就是该用户、密码正确。
      

  2.   

    就几句而已。MSDN 上对VC 不是很清楚。。
    比如我有这样的数据库
    UserID       PassWord 
     张3         fjd63kf
     李四        343DIEj
     王五        3kd83kj一定要用户名和密码一样才能登陆~!
      

  3.   

    这样安全级别也太低了吧,数据库应不存放密码的明文,最好将密码另存或对密码进行一定的加密运算,将加密后的结果存如表中;用select Password from staff where UserID=/*编辑框里的要填的用户*/从编辑框获得用户输入的密码,对密码进行相应的运算,将结果与查询的结果比较
      

  4.   

    select * from staff where UserID=/*编辑框里的要填的用户*/,
                          and Password=/*编辑框里的要填的用户*/就是执行这个语句查询,然后判断结果记录集是否为空,如果为空,表示登陆失败,如果不为空,表示登陆成功。
    这是ADO的示例代码,你可以参考一下:CString sql;
    sql.Format("select * from accounts where UserID='%s' and PassWord='%s'",szUserid,szPassword);try
    {
    m_pRecordset->Open(_variant_t(sql),// 查询accounts表中所有字段
    m_pConnection.GetInterfacePtr(),  // 获取库接库的IDispatch指针
    adOpenDynamic,
    adLockOptimistic,
    adCmdText);
    }
    catch(_com_error *e)
    {
    AfxMessageBox(e->ErrorMessage());
    }if(!m_pRecordset->adoEOF)AfxMessageBox("登陆验证成功!");  //记录集不为空
    else AfxMessageBox("登陆验证失败!");  //为空,表示登陆失败
      

  5.   

    关于ADO操作数据库的资料,参考:
    http://www.vckbase.com/document/viewdoc/?id=1215
      

  6.   

    我想要可以编译的。
    ============================
     kugou123(酷狗)(http://www.xiaozhou.net)的代码就能用了阿//这里用ADO连接数据库
    //代码论坛上有的,你自己找找
    ...
    CString szUserid,szPassword;
    //假设你的用户名的编辑框ID为IDC_USER_ID
    GetDialogItem(IDC_USER_ID)->GetWindowText(szUserid);
    //你的密码编辑框的ID为IDC_PASSWORD
    GetDialogItem(IDC_PASSWORD)->GetWindowText(szPassword);
    CString sql;
    sql.Format("select * from accounts where UserID='%s' and PassWord='%s'",szUserid,szPassword);try
    {
    m_pRecordset->Open(_variant_t(sql),// 查询accounts表中所有字段
    m_pConnection.GetInterfacePtr(),  // 获取库接库的IDispatch指针
    adOpenDynamic,
    adLockOptimistic,
    adCmdText);
    }
    catch(_com_error *e)
    {
    AfxMessageBox(e->ErrorMessage());
    }if(!m_pRecordset->adoEOF)AfxMessageBox("登陆验证成功!");  //记录集不为空
    else AfxMessageBox("登陆验证失败!");  //为空,表示登陆失败
      

  7.   

    这么几行代码啊。晕。我是赶着交货。我用的是ACCESS 数据库。我写的聊天程序。最少。5000行吧。。不不会在乎这么几行的。