VC++MySQL数据库编程

来源:互联网 发布:java 图片合成视频 编辑:程序博客网 时间:2024/04/29 17:57

一、MySQL数据库的安装

    下载MySQL Server 5.1这个版本,当然版本越新越好。如果对MySQL数据库不是很熟悉的同学可以在网上下载Navicat for MySQL这个软件,这个软件有可视化的界面可以对MySQL数据库进行操作,其界面与微软的SQL Server的界面差不多。

 

二、VC8.0的设置

     因为本人对MySQL数据库的编程用的是Visual Studio 2005这个版本,所以下面的设置可能与VC6.0又一点点的区别。设置步骤如下:

     (1) 打开项目->属性->配置属性->C/C++->General->additional include directories

         在这里面添加C:/Program Files/MySQL/MySQL Server 5.1/include和C:/Program Files/MySQL/MySQL Server 5.1

         /lib/opt这两个路径。

     注:由于本人的MySQL数据库是安装在C:/Program Files这个目录下的,所以就存在了上面的路径的写法,大家可以根据自己的  

          MySQL数据库的安装位置确定路径。

     (2)打开项目->属性->配置属性->Linker->Input->additional dependencies

           在这里面添加libmysql.lib

     (3)在stdafx.h里面添加如下的内容:

          #include "winsock.h"
           #include "mysql.h"
           #pragma comment(lib,"libmySQL.lib")

      注:#include "winsock.h"一定要写在#include "mysql.h"的前面,否则出错。

     (4)将“libmySQL.lib、libmySQL.dll”拷到你所建的工程的目录下。

 

三、数据库、表的创建

 

    如果没安装Navicat for MySQL这个软件的同学可以直接根据命令在MySQL中进行建库、建表。

 

    打开“开始->所有程序->MySQL->MySQL Server 5.1->MySQL Command Line Client.exe”,如果没有设置密码就直接按回车,会提示服务器启动成功。

     mysql> SHOW DATABASES;//显示所有的数据库,注意一定要 敲“;”后再按回车
mysql> CREATE DATABASE mydb;//创建数据库mydb
mysql> USE mydb;//选择你所创建的数据库mydb
mysql> SHOW TABLES; //显示数据库中的表
mysql> CREATE TABLE mytable (username VARCHAR(100), visitelist VARCHAR(200), remark VARCHAR(200));//创建一个表mytable: 用户名;访问列表;备注
mysql> DESCRIBE mytable;//显示表的结构

四、VC编程

   

 (1) 数据库的连接操作

mysql=mysql_real_connect(mysql,"localhost","root","1","mydb1",3306,NULL,0);

其中"1"为本人MySQL数据库的密码。

 

(2) 实现添加 功能

 

  

在Visual Studio 2005中VC是默认Unicode,所以上面的代码中

strSQL.Format("insert into mytable(username,visitelist,remark)values('%s','%s','s')",strUsername,strList,strRemark);是编译不成功的,所以要设置多字符的形式才能编译成功,至于多字符在Visual Studio 2005中如何设置,这里不再赘述,不了解的同学可以上网去搜一下。如果不想用CString来实现,可以用sprintf的方法来写,代码如下:


 (3) 实现修改功能

 

 

CString strUsername,strList,strRemark,strSQL,str_PreName;//str_PreName用于记录想要修改的行,详情
请看源代码
strSQL.Format("update mytable set username=/'%s/',visitelist=/'%s/',

remark=/'%s/' where username=/'%s/'",strUsername,strList,strRemark,str_PreName);
if(mysql_real_query(mysql,(char*)(LPCTSTR)strSQL,(UINT)strSQL.GetLength())!=0){
AfxMessageBox("修改失败");
}

 

(4) 实现删除功能

 

CString strSQL;
strSQL.Format("delete from mytable where username=/'%s/'",str_PreName);//必须要有/'/'
if(mysql_real_query(mysql,(char*)(LPCTSTR)strSQL,(UINT)strSQL.GetLength())!=0){
AfxMessageBox("删除失败");
}

 

(5) 读取表格 

  

 

 (6) 关闭数据库

 

mysql_close(mysql);//最好写到OnDestroy()函数中

初次接触MySQL,这里只是本人通过上网搜集资料,并且自己亲自去操作得到的一点点经验,有错误或者不全面的地方望
指出。
 
原创粉丝点击