void CCodeManageDlg::OnBtnLogin() 
{
    // TODO: Add your control notification handler code here    UpdateData(TRUE);
    CCodeManageDlg dlg;
    if(m_username.IsEmpty())
    {
        AfxMessageBox("请输入用户名!");
        return;
    }
    if(m_password.IsEmpty())
    {
        AfxMessageBox("请输入密码!");
        return;
    }
//麻烦大家帮我看看下面怎么写代码实现    CUserSet q;
    CString strSQL;
    strSQL.Format("name='%s'",dlg.m_username);
    if(!q.IsOpen())
        q.Open();
    q.m_strFilter=strSQL;
    q.Requery();
    int nID=GetCheckedRadioButton(IDC_RADIO1,IDC_RADIO4);
    if(!nID)
    {
        AfxMessageBox("请选择你的身份!");
        return;
    }
    else
    {
        if(nID==IDC_RADIO1)
        {
            //管理员身份登录
            if(dlg.m_username==q.m_name&&dlg.m_password==q.m_password)
            {
                //OnOK();
                CFuntion dlg2;
                dlg2.DoModal();
            }
            else
            {
                AfxMessageBox(TEXT("用户名或密码错误,请重新输入!"));
            }
        }
        else if(nID==IDC_RADIO2)
        {
            //操作员身份登录
        }
        else if(nID==IDC_RADIO3)
        {
            //查询员身份登录
        }
        else
        {
            //修理员身份登录
        }    }    
}
不知道我那里查询到了user的记录没有,if那里怎么写,我基础差,麻烦大家帮我看看,谢谢了

解决方案 »

  1.   

    我看了一下,你的SQL 语句写错了,SQL语句可以改成:
    strSQL.Format("SELECT *FROM User_Tab WHERE name = '%s'",dlg.m_username);
    //假设你的表名为User_Tab.
    而且你用的是ODBC方式,在使用前应该在管理工具中的数据源中配置要你的数据。其实,你可以派生一个CRecordset类,然后操作,可以比较方便。
      

  2.   

    谢谢楼上,我之前也是那样该过,但是运行也没有报错,但是我一输入东西,登录的时候就说select那里语法错误,我也不知道怎么回事。
    已经配置好了,我那个CUserSet类就是以CRecorset为基类的。
      

  3.   

    咦?我最近也在做ODBC连接数据库。我的能行。可能我没有怎么仔细看你的代码,或许代码其他地方有问题?
      

  4.   

    给你推荐一本书吧,《Visual C+++SQL Server数据库开发与实例》。虽然是SQL的,但是和ACCESS差不多。你可以看一下嘛。我有源码,如果需要,可以传你。
    我也是最近在学习,有什么问题,可以一起探讨哈。
      

  5.   

    哦,好的,谢谢,你比我强多了,哈哈,能传我源码看看否?[email protected] you very much