visual studio C++ MFC连接MySQL实现登录界面的检验

visual studio MFC连接MySQL

首先Navicat新建连接

然后建立数据库,建立登录所需要检验账号密码的表

visual studio 建立MFC工程,根据需求在对话框中添加所需要的控件

在项目属性中加入mysql目录路径

然后是在登录按钮事件中,写链接mysql数据库的代码,以及账号密码的验证

CString username, password;
GetDlgItemText(IDC_EDIT1_USER, username);
GetDlgItemText(IDC_EDIT2_PASS, password);
const char user[] = "root";
const char pswd[] = "123456";
const char host[] = "localhost";
const char table[] = "catering";
unsigned int port = 3306;

MYSQL_RES* res;
MYSQL_ROW row;
MYSQL mysqlCon;

if (username=="" || password=="")
{
    MessageBox(_T("用户名或密码不能为空!"), _T("用户登录信息"));
    return;
}

mysql_init(&mysqlCon);
if (!mysql_real_connect(&mysqlCon, host, user, pswd, table, port, NULL, 0))
{
    AfxMessageBox(_T("访问数据库失败!"));
}
else
{
    mysql_query(&mysqlCon, "gbk"); //设置字符集
    //AfxMessageBox(_T("访问数据库成功!"));
}

CString select_sql_by_user;
 select_sql_by_user.Format(_T("select username,password from staff where username = \'%s\'"), username);
    int ress = mysql_query(&mysqlCon, (char*)(LPCTSTR)select_sql_by_user);
    if (ress == 1)
    {
        AfxMessageBox(mysql_error(&mysqlCon));//排错
    }
    if (ress == 0) //检测查询成功
    {
        res = mysql_store_result(&mysqlCon);

        if (mysql_num_rows(res) == 0) //查询结果为空
        {
            //AfxMessageBox(mysql_errno(&mysqlCon));
            AfxMessageBox(_T("用户不存在"));
        }
        else
        {

            row = mysql_fetch_row(res);
            CString ad = row[1];
            if (password == row[1])
            {
                mysql_free_result(res);
                MessageBox(_T("登录成功!"));
         

            }
            else
            {
                AfxMessageBox(_T("密码错误!"));
            }
        }


    }
    else
    {
        AfxMessageBox(_T("访问失败!"));
    }

    mysql_close(&mysqlCon);
然后就是隐藏密码,未点击你输入密码只能看到****,

先在初始化函数里面写以下语句

然后在单选控件单击事件中写以下就ok了

void CCCateringManageDlg::OnBnClickedCheckPacheck()//显示密码
{
    // TODO: 在此添加控件通知处理程序代码
    UpdateData(TRUE); // 更新控件对应变量的值
    if (m_passwordcheck.GetCheck() == 1)
    {
        CEdit* pmyEdit = (CEdit*)GetDlgItem(IDC_EDIT2_PASS); // 密码编辑框控件的指针
        pmyEdit->SetPasswordChar(0); // 显示格式为明文
        ASSERT(!(pmyEdit->GetStyle() & ES_PASSWORD));
    }
    else
    {
        CEdit* pmyEdit = (CEdit*)GetDlgItem(IDC_EDIT2_PASS); // 密码编辑框控件的指针
        pmyEdit->SetPasswordChar('*'); // 显示格式为星号
    }

}

然后是登录演示

就OK了

  • 52
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值