MFC+Mysql 编程

我用的是VS2010,Mysql,Win7 32位 ,通过ODBC接口进行数据库编程 。

首先你要安装mysql odbc 驱动,这个可以在官网上下载到。

安装Mysql驱动完成后就可以开始下面的工作.

首先,我们先建立一个数据库mydb  

             

选择我们新创建的数据库mydb

           

再创建一个表 admin_info 作为登入界面的一个表

           

插入一条新纪录,用户名aa,密码11

         

 完成数据库的创建后,我们要添加Mysql 的odbc 驱动

         






Data Source Name 是数据库名字,自己可以随便取一个(我这里取的和我在数据库创建的一样)

TCP/IP Server :localhost (表示本机的数据库)

User和Password是你连接你自己Mysql的用户名和密码

Database 选择我们刚才自己新建的数据库mydb,通过旁边的Test 可以查看连接是否成功


这样就创建成功了!


             通过VS2010新建一个MFC application工程,选择基于对话框的。

然后创建如下控件。


           为控件添加变量,右键对话框空白处


添加如下变量


再为登入按钮,添加单击响应事件



下面 我们要新建一个类,通过这个类,我们可以在程序中对数据库进行操作,这个类就是CRecordset。


这样,我们的类就创建完成了。该类的名字叫Cadmin_info,继承CRecordset类

最后,我们添加一些代码

                     在stdafx.h中加入头文件

                      #include

                   在mydb.cpp中添加如下代码,mydb是我新建mfc工程的名字

               

               CDatabase m_db;



                    在刚才创建的对跨框类中引入m_db,在BOOL CmydbDlg::OnInitDialog()中添加如下代码

                        extern  CDatabase m_db

// TODO: Add extra initialization here
	m_db.OpenEx(_T("DSN=mydb;UID=root;PWD=deathnote"),CDatabase::noOdbcDialog);
	MessageBox(_T("连接成功!"),_T("登入系统"),MB_OK|MB_ICONINFORMATION);

在登入按钮函数 OnBnClickedOk中添加如下代码


void CmydbDlg::OnBnClickedOk()
{
	// TODO: Add your control notification handler code here
	UpdateData();
	Cadmin_info *m_pLogset = new Cadmin_info(&m_db);
	CString strSQL;
	strSQL.Format(_T("select * from Admin_Info where User_Name='%s' AND Password='%s'"),m_uer_name,m_password);
	m_pLogset->Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
	if(m_pLogset->GetRecordCount()==0)
	{
		if(count<2)
		{
			count++;
			MessageBox(_T("用户名或密码错误,请重新输入!"),_T("登入系统"),MB_OK|MB_ICONERROR);
			m_uer_name.Empty();
			m_password.Empty();
			UpdateData(FALSE);
			return ;
		}
		else
		{
			m_db.Close();
			MessageBox(_T("登入失败超过3次,请于管理员联系!"),_T("登入系统"),MB_OK|MB_ICONERROR);
			CDialogEx::OnOK();
		}
	}
	else
	{
		MessageBox(_T("恭喜,登入成功!"),_T("登入系统"),MB_OK|MB_ICONINFORMATION);
		//CDialogEx::OnOK();
		DialogMain dlgmain;
		dlgmain.m_name = m_uer_name;
		dlgmain.DoModal();
		OnCancel();
	}
}


到此为止,登入界面完成,编译,运行.





你可能感兴趣的:(MYSQL,MFC,mfc,mysql,odbc)