VS与MySQL API进行数据库连接

来源:互联网 发布:java三目运算符怎么用 编辑:程序博客网 时间:2024/05/29 12:44

1.项目st右键属性,平台活动(X64),字符集:使用多字节字符集。VC++目录——包含目录C:\Program Files\MySQL\MySQL Server 5.5\include

库目录C:\Program Files\MySQL\MySQLServer 5.5\lib



2.连接器——输入——附加依赖项libmysql.lib.并将其拷贝至工程目录下。将libmysql.dll拷贝至C:\Windows\System32\。


3.stdafx.h中加入

#include "winsock2.h"#include "mysql.h"

记得调试的时候还会有一个小错误,注释掉就可以了。

4.连接数据库

MYSQL mysql;mysql_init(&mysql);       if(!mysql_real_connect(&mysql,"localhost","root","*******","test",3306,NULL,0))       {              AfxMessageBox("数据库连接失败");       }

附:程序源码:

BOOL CstDlg::OnInitDialog(){CDialogEx::OnInitDialog();  // 将“关于...”菜单项添加到系统菜单中。DWORD dwExStyle=LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE;m_list.SetExtendedStyle(dwExStyle);m_list.SetTextColor(RGB(0,0,0));//m_list.SetBkColor(RGB(240,247,233));m_list.InsertColumn(0,"姓名",LVCFMT_CENTER,80,0);m_list.InsertColumn(1,"性别",LVCFMT_CENTER,80,0);m_list.InsertColumn(2,"年级",LVCFMT_CENTER,80,0);m_list.InsertColumn(3,"班级",LVCFMT_CENTER,80,0);}void CstDlg::OnPaint(){if (IsIconic()){CPaintDC dc(this); // 用于绘制的设备上下文SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);// 使图标在工作区矩形中居中int cxIcon = GetSystemMetrics(SM_CXICON);int cyIcon = GetSystemMetrics(SM_CYICON);CRect rect;GetClientRect(&rect);int x = (rect.Width() - cxIcon + 1) / 2;int y = (rect.Height() - cyIcon + 1) / 2;// 绘制图标dc.DrawIcon(x, y, m_hIcon);}else{CDialogEx::OnPaint();MYSQL m_MySQL;mysql_init(&m_MySQL);if(!mysql_real_connect(&m_MySQL,"localhost","root","密码","test",3306,NULL,0)){AfxMessageBox(_T("数据库连接失败"));//return FALSE;}MYSQL_RES *result; MYSQL_ROW row; char *ch_query;mysql_query(&m_MySQL, "SET NAMES 'GB2312'");result=mysql_store_result(&m_MySQL);mysql_free_result(result);ch_query="SELECT * FROM st"; if(mysql_real_query(&m_MySQL,"SELECT * FROM st",(UINT)strlen(ch_query))!=0){AfxMessageBox(_T("读取数据表格失败!"));} if(!(result=mysql_use_result(&m_MySQL))) { AfxMessageBox(_T("读取数据失败"));}CString str; int i=0;m_list.DeleteAllItems();while(row = mysql_fetch_row(result)){  str=row[0];; m_list.InsertItem(i,str);str=row[1];; m_list.SetItemText(i,1,str);str=row[2];;m_list.SetItemText(i,2,str);str=row[3];m_list.SetItemText(i,3,str);i++;}GetDlgItemText(IDC_EDIT_NAME,stname);GetDlgItemText(IDC_EDIT_SEX,stsex);}}void CstDlg::OnBnClickedBtnSave(){// TODO: 在此添加控件通知处理程序代if(stname==""){ MessageBox(_T("请输入姓名!"),MB_OK);GetDlgItem(IDC_EDIT_NAME)->SetFocus();return;}else{if(stsex==""){MessageBox("请输入性别!");GetDlgItem(IDC_EDIT_SEX)->SetFocus();return ;}else{ if(stsex!=""&stsex!="男"&stsex!="女"){MessageBox(_T("请输入正确的性别!!"),MB_OK);SetDlgItemText(IDC_EDIT_SEX,(LPCTSTR)L"");GetDlgItem(IDC_EDIT_SEX)->SetFocus();return;}else if(stgrad==""){MessageBox(_T("请输入年级!"),MB_OK);//Invalidate();GetDlgItem(IDC_EDIT_GRADE)->SetFocus();return ;}else if(stclas==""){MessageBox(_T("请输入班级!"),MB_OK);//Invalidate();GetDlgItem(IDC_EDIT_CLASS)->SetFocus();return ;}else{DWORD dwExStyle=LVS_EX_FULLROWSELECT|LVS_EX_GRIDLINES|LVS_EX_HEADERDRAGDROP|LVS_EX_ONECLICKACTIVATE;m_list.SetExtendedStyle(dwExStyle);m_list.SetTextColor(RGB(0,0,0));m_list.SetBkColor(RGB(240,247,233));MYSQL m_MySQL;mysql_init(&m_MySQL);MYSQL_RES *result; MYSQL_ROW row; char *ch_query;if(!mysql_real_connect(&m_MySQL,"localhost","root","liuxinyuan","test",3306,NULL,0)){AfxMessageBox(_T("数据库连接失败"));}mysql_query(&m_MySQL,"set character set gbk");mysql_query(&m_MySQL, "SET NAMES 'GB2312'");ch_query="SELECT * FROM st"; if(mysql_real_query(&m_MySQL,"SELECT * FROM st",(UINT)strlen(ch_query))!=0){AfxMessageBox(_T("读取数据表格失败!"));} if(!(result=mysql_use_result(&m_MySQL))) { AfxMessageBox(_T("读取数据失败"));}while(row = mysql_fetch_row(result)){}CString str0;str0.Format("insert into st values ('%s','%s','%s','%s');",stname,stsex,stgrad,stclas);char *SQL=str0.GetBuffer();int r = mysql_real_query(&m_MySQL,SQL,strlen(SQL));SetDlgItemText(IDC_EDIT_CLASS,(LPCTSTR)L"");SetDlgItemText(IDC_EDIT_GRADE,(LPCTSTR)L"");SetDlgItemText(IDC_EDIT_NAME,(LPCTSTR)L"");SetDlgItemText(IDC_EDIT_SEX,(LPCTSTR)L"");Invalidate();/*m_list.InsertItem(0,stname);                   m_list.SetItemText(0,0,stname);m_list.SetItemText(0,1,stsex);m_list.SetItemText(0,2,stgrad);m_list.SetItemText(0,3,stclas);SetDlgItemText(IDC_EDIT_CLASS,(LPCTSTR)L"");SetDlgItemText(IDC_EDIT_GRADE,(LPCTSTR)L"");SetDlgItemText(IDC_EDIT_NAME,(LPCTSTR)L"");SetDlgItemText(IDC_EDIT_SEX,(LPCTSTR)L"");*/}}}}void CstDlg::OnBnClickedBtnDelete(){//CString str;if(stname2==""){MessageBox(_T("请输入要删除的姓名!"),MB_OK);return;}else if(stsex2==""){MessageBox(_T("请输入要删除的性别!"),MB_OK);return;}else{MYSQL m_MySQL;mysql_init(&m_MySQL);MYSQL_RES *result; MYSQL_ROW row; char *ch_query;if(!mysql_real_connect(&m_MySQL,"localhost","root","liuxinyuan","test",3306,NULL,0)){AfxMessageBox(_T("数据库连接失败"));}mysql_query(&m_MySQL,"set character set gbk");mysql_query(&m_MySQL, "SET NAMES 'GB2312'");ch_query="SELECT * FROM st"; if(mysql_real_query(&m_MySQL,"SELECT * FROM st",(UINT)strlen(ch_query))!=0){AfxMessageBox(_T("读取数据表格失败!"));}if(!(result=mysql_use_result(&m_MySQL))) { AfxMessageBox(_T("读取数据失败"));}while(row = mysql_fetch_row(result)){}CString str0,str1;str0.Format("delete from st where 姓名='%s' and 性别='%s'",stname2,stsex2);char *SQL=str0.GetBuffer();int r = mysql_real_query(&m_MySQL,SQL,strlen(SQL));//result = mysql_store_result(&m_MySQL);/*if(!r){str1.Format("未找到数据数据姓名=%s!",stname2);MessageBox(str1);}else{str1.Format("删除数据数据姓名=%s!",stname2);MessageBox(str1);}*/Invalidate();/*LVFINDINFO findinfo;int index1,index2,index3,index4;,stgrade2,stclass2index1=-1;index2=-1; and 年级='%s' and 班级=%sindex3=-1;index4=-1;m_list.SetRedraw(FALSE);findinfo.flags=LVFI_STRING;findinfo.psz=stclass2;index1=m_list.FindItem(&findinfo);findinfo.flags=LVFI_STRING;findinfo.psz=stgrade2;index2=m_list.FindItem(&findinfo);findinfo.flags=LVFI_STRING;findinfo.psz=stname2;index3=m_list.FindItem(&findinfo);if(index3!=-1){AfxMessageBox(_T("确定删除?"),MB_OK);m_list.DeleteItem(index3);}findinfo.flags=LVFI_STRING;findinfo.psz=stsex2;index4=m_list.FindItem(&findinfo,-1);*//*if(index3==index4&index3!=-1){index=index3;AfxMessageBox(_T("确定删除?"),MB_OK);m_list.DeleteItem(index);}*/m_list.SetRedraw(TRUE);}// TODO: 在此添加控件通知处理程序代码}void CstDlg::OnBnClickedBtnSearch(){if(stname2==""){MessageBox(_T("请输入要查询的姓名!"),MB_OK);return;}if(stsex2==""){MessageBox(_T("请输入要查询的性别!"),MB_OK);return;}MYSQL m_MySQL;mysql_init(&m_MySQL);if(!mysql_real_connect(&m_MySQL,"localhost","root","liuxinyuan","test",3306,NULL,0)){AfxMessageBox(_T("数据库连接失败"));//return FALSE;}MYSQL_RES *result; MYSQL_ROW row; char *ch_query;mysql_query(&m_MySQL, "SET NAMES 'GB2312'");result=mysql_store_result(&m_MySQL);mysql_free_result(result);ch_query="SELECT * FROM st"; if(mysql_real_query(&m_MySQL,"SELECT * FROM st",(UINT)strlen(ch_query))!=0){AfxMessageBox(_T("读取数据表格失败!"));} if(!(result=mysql_use_result(&m_MySQL))) { AfxMessageBox(_T("读取数据失败"));}while(row = mysql_fetch_row(result)){}CString str0;str0.Format("select * from st where 姓名='%s' and 性别='%s'",stname2,stsex2); char *SQL=str0.GetBuffer();mysql_real_query(&m_MySQL,SQL,strlen(SQL));result=mysql_use_result(&m_MySQL);CString str; int i=0;m_list.DeleteAllItems();   while(row = mysql_fetch_row(result)){  str=row[0];; m_list.InsertItem(i,str);str=row[1];; m_list.SetItemText(i,1,str);str=row[2];;m_list.SetItemText(i,2,str);str=row[3];m_list.SetItemText(i,3,str);i++;}/*m_list.DeleteAllItems();MYSQL m_MySQL;MYSQL_RES *result; MYSQL_ROW row; //mysql_query(&m_MySQL, "SET NAMES 'GB2312'");while(row = mysql_fetch_row(result)){}CString str0;str0.Format("select * from st where 姓名='%s';",stname2); char *SQL=str0.GetBuffer();mysql_real_query(&m_MySQL,SQL,strlen(SQL));result=mysql_use_result(&m_MySQL);CString str; int i=0;while(row = mysql_fetch_row(result)){  str=row[0];; m_list.InsertItem(i,str);str=row[1];; m_list.SetItemText(i,1,str);str=row[2];;m_list.SetItemText(i,2,str);str=row[3];m_list.SetItemText(i,3,str);i++;}*//*LVFINDINFO findinfo;int index,index1,index2,index3,index4;index1=-1;index2=-1;index3=-1;index4=-1;m_list.SetRedraw(FALSE);findinfo.flags=LVFI_STRING|LVFI_PARTIAL;findinfo.psz=stclass2;index1=m_list.FindItem(&findinfo);findinfo.flags=LVFI_STRING|LVFI_PARTIAL;findinfo.psz=stgrade2;index2=m_list.FindItem(&findinfo);findinfo.flags=LVFI_STRING|LVFI_PARTIAL;findinfo.psz=stname2;index3=m_list.FindItem(&findinfo);//m_list.DeleteItem(index3);m_list.SetItemState(index3,LVIS_SELECTED|LVIS_FOCUSED|LVIS_DROPHILITED,LVIS_SELECTED|LVIS_FOCUSED|LVIS_DROPHILITED);findinfo.flags=LVFI_STRING|LVFI_PARTIAL;findinfo.psz=stsex2;index4=m_list.FindItem(&findinfo);//m_list.SetItemState(index3,LVIS_SELECTED|LVIS_FOCUSED|LVIS_DROPHILITED,//LVIS_SELECTED|LVIS_FOCUSED|LVIS_DROPHILITED);if(index3==index4&index3!=-1){index=index3;m_list.SetItemState(index,LVIS_SELECTED|LVIS_FOCUSED|LVIS_DROPHILITED,LVIS_SELECTED|LVIS_FOCUSED|LVIS_DROPHILITED);}m_list.SetRedraw(TRUE);*/// TODO: 在此添加控件通知处理程序代码}


0 0
原创粉丝点击