http://blog.csdn.net/wencheng2998/article/details/6428985

一、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) 数据库的连接操作

[cpp]  view plain copy
  1. MYSQL *mysql;//数据库连接句柄  
  2.     mysql = (MYSQL *)malloc(sizeof(MYSQL));      
  3.     mysql_init(mysql);  
  4.   
  5.     mysql=mysql_real_connect(mysql,"localhost","root","1","mydb",3306,NULL,0);  
  6.     if(!mysql)  
  7.     {  
  8.         printf("conn fail... ");  
  9.         return FALSE;  
  10.     }  

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

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

 

(2) 实现添加 功能

 

 
 
 
  1. CString strUsername("hhhhhhhhhhh"),strList("ddddddddddddd"),strRemark("kkkkkkkk"),strSQL;   
  2. strSQL.Format("insert into mytable(username,visitelist,remark)values('%s','%s','%s')",strUsername,strList,strRemark);  
  3. if(mysql_real_query(mysql,(char*)(LPCTSTR)strSQL,(UINT)strSQL.GetLength())!=0)  
  4. {   
  5.     printf("%s", mysql_error(mysql));  
  6.     printf("添加数据失败!");  
  7. }  

在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的方法来写,代码如下:

[cpp]  view plain copy
  1. //sprintf方法写插入语句  
  2. char ch_query1[200];  
  3. char h1[]="gggggggggggggggg";  
  4. char h2[]="gggggggggggggggg";  
  5. char h3[]="gggggggggggggggg";      
  6. sprintf(ch_query1,"insert into mytable(username,visitelist,remark)values('%s','%s','%s')",h1,h2,h3);  
  7. if(mysql_real_query(mysql,ch_query1,(UINT)strlen(ch_query1))!=0)  
  8. {   
  9.     printf("插入数据失败!");  
  10. }  

 (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) 读取表格 

 
 
 
  1.   //查找具体的数据  
  2. MYSQL_RES *result;  
  3. MYSQL_ROW row;  
  4. if(!(result=mysql_use_result(mysql)))  
  5. {  
  6.     printf("查询数据失败!");  
  7. }  
  8. while(row=mysql_fetch_row(result))  
  9. {  
  10.     printf("%s %s %s",row[0],row[1],row[2]);  
  11. }  

 

 (6) 关闭数据库

 

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

初次接触MySQL,这里只是本人通过上网搜集资料,并且自己亲自去操作得到的一点点经验,有错误或者不全面的地方望
指出。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值