vs2012利用MFC开发基于对话框的小软件指南(连接Mysql数据库)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013573047/article/details/50591930

最近用MFC写了一个基于对话框的小软件,并且实现了和mysql数据库的交互。从一点不懂到最后写出来,费了不少周折,百度谷歌了很多资料,也听了很多其他人的意见。特写本篇博文,希望对同样在设计含界面的小软件并在学习MFC的朋友提供一定的帮助,你不是一个人。

开发环境:vs2012 mysql5.1 win10x64位操作系统

关于vs2012和mysql数据库的链接请看我的这篇博文

http://blog.csdn.net/lvshubao1314/article/details/50249955

        打开vs2012,文件-新建-mfc应用程序-基于对话框,然后完成。然后右侧工具栏有各种控件,拖动到对话框,右键属性可以编辑控件的名称,再然后双击一个控件即可到对应改控件绑定代码了,效果是点击该控件即可执行其绑定代码

细节还是见代码吧,SetDlgItemText()将值输入到控件,GetDlgItemText()得到控件的值,属于CSting类型的。CString这是VC++特有的数据类型,用的时候注意和c++各种类型的转换,这个百度一下就有了,我就不赘述了。

以下是软件其中一个界面的button控件(下图“确认查询”控件)所绑定的代码

void C员工个人信息查询Dlg::OnBnClickedButton1()
{
	// TODO: 在此添加控件通知处理程序代码
	CString name;
	CString id;
	GetDlgItemText(IDC_EDIT1,name);
	GetDlgItemText(IDC_EDIT2,id);
	//int aa=_ttoi(a);
	//aa=aa*aa;
	//b.Format(_T("%d"),aa);
	//SetDlgItemText(IDC_EDIT2,b);
	char *host = "localhost";  
    char *user = "root";//mysql的用户名  
    char *pass = "root";//你的mysql服务器密码  
    char *db = "employee";  
    unsigned int port = 3306; //server port  
    MYSQL *sock;  
    sock=mysql_init(0);  
    if(sock &&mysql_real_connect(sock,host,user,pass,db,0,NULL,0))  
    {  
		mysql_query(sock,"SET NAMES 'gbk'");
        std:string name1,id1,father_id1,father_name1,father_ab1; 
		name1=(char *)_bstr_t(name);
		id1=(char *)_bstr_t(id);
		char name3[100],id3[100];
		const char *name2,*id2;
		name2=name1.c_str();
		id2=id1.c_str();
		strcpy(name3,name2);
		strcpy(id3,id2);
		char sql[300];
		sprintf( sql,"select father_id,father_name,father_ab from users where id='%s'and name='%s';",id3,name3);
		//sprintf(sql,"insert into %s",bbb);
		//b=name.c_str();
		mysql_query(sock,sql);
		MYSQL_RES *res; 
		MYSQL_ROW row;
		res=mysql_store_result( sock) ;//取得查询结果,保存查询到的数据到res 
		int num=0;
		if(row=mysql_fetch_row(res))
		{
			string num1=row[0],num2=row[1],num3=row[2];
			CString father_name;
			CString father_id;
			CString father_ab;
			father_id=num1.c_str();
			father_name=num2.c_str();
			father_ab=num3.c_str();
			SetDlgItemText(IDC_EDIT3,father_name);
			SetDlgItemText(IDC_EDIT4,father_id);
			SetDlgItemText(IDC_EDIT5,father_ab);
		}
		else
		{
			CString retu(_T("输入信息有误!"));
			SetDlgItemText(IDC_EDIT3,retu);
		}
    }  
    else  
    {  
         CString retu(_T("连接数据库错误!"));
		 SetDlgItemText(IDC_EDIT2,retu);
    }   
}

最后页面是这样的:


展开阅读全文

没有更多推荐了,返回首页