表示生活不容易的句子:VC范例-操作MySQL
来源:百度文库 编辑:九乡新闻网 时间:2024/04/24 19:22:37
源码下载:http://howwe.googlecode.com/files/MySqlVcDemo.rar
源码使用说明:
1、MySQL目录为mysql 5.1.44的精简版,只要修改my.ini文件中的两个参数中的“c:/”为相应目录即可:
basedir="c:/MySQL/"
datadir="c:/MySQL/Data/"
2、运行MySQL\bin下的createmysqlsvc.bat将mysql注册成服务,再运行startmysql.bat启动服务即可使用mysql。注意root密码
3、运行MySqlVcDemo.exe即可参看效果。
一、VC代码解释
(1)mysql初始化
mysql_init (&mysql); //数据库连接句柄
if(!mysql_real_connect(&mysql,"localhost","root","1","test",3306,NULL,0))
{ //test为源码中自带数据库名,3306为端口号,可自行设定
AfxMessageBox("数据库连接失败");
return FALSE;
}
mysql_query(&mysql, "SET NAMES 'gb2312'");//加上这句就能解决乱码
(2)添加
CString strUsername,strList,strRemark;
GetDlgItem(IDC_EDIT_USERNAME)->GetWindowText(strUsername);
GetDlgItem(IDC_EDIT_VISITELIST)->GetWindowText(strList);
GetDlgItem(IDC_EDIT_REMARK)->GetWindowText(strRemark);
CString strSQL;
strSQL.Format("insert into mytable(username,visitelist,remark) values(\'%s\',\'%s\',\'%s\')",strUsername,strList,strRemark); //注意一定要写在一行,而且必须要有\'\'
if(mysql_real_query(&mysql,(char*)(LPCTSTR)strSQL,(UINT)strSQL.GetLength())!=0)
{
AfxMessageBox("增添失败");
}
(3)修改
CString strUsername,strList,strRemark; //str_PreName用于记录想要修改的行,详情请看源代码
GetDlgItem(IDC_EDIT_USERNAME)->GetWindowText(strUsername);
GetDlgItem(IDC_EDIT_VISITELIST)->GetWindowText(strList);
GetDlgItem(IDC_EDIT_REMARK)->GetWindowText(strRemark);
CString strSQL;
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)读取表格内容到CListCtrl控件m_list
m_list.DeleteAllItems();
//////////////////////////////////////////////////////////////////////////
char *ch_query;
ch_query="select * from mytable";
if(mysql_real_query(&mysql,ch_query,(UINT)strlen(ch_query))!=0)
{
AfxMessageBox("数据库中表格出错");
}
CString str;
MYSQL_RES *result;
MYSQL_ROW row;
if(!(result=mysql_use_result(&mysql)))
{
AfxMessageBox("读取数据集失败");
}
int i=0;
while(row=mysql_fetch_row(result)){
str.Format("%s",row[0]);
m_list.InsertItem(i,str);
str.Format("%s",row[1]);
m_list.SetItemText(i,1,str);
str.Format("%s",row[2]);
m_list.SetItemText(i,2,str);
i++;
}
mysql_free_result(result);
(6)关闭数据库
mysql_close(&mysql);//最好写到OnDestroy()函数中
二.说明
1、mysql数据库不用安装,操作简便;
2、mysql 数据库API文件头不用设置;
3、不用建立数据库及表,减少学习难度。
注:如果要自己动手,请参考附录
附录:
一、MySQL的安装
直接在http://www.mysql.com/downloads/mysql下载,注意选择“完全安装”(只有这样才会安装VC编译时需要的头文件等)。安装后期会进行服务器配置,你可以设置你的服务器登陆密码,也可以不设置密码。
二、VC6.0的设置
(1)打开VC6.0 工具栏Tools菜单下的Options选项,在Directories的标签页中右边的“Show directories for:”下拉列表中选中“Includefiles”,然后在中间列表框中添加你本地安装MySQL的include目录路径。(范例中直接复制include到根目录下)。
(2)在上面说到的“Show directories for:”下拉列表中选中“Library files”,然后添加你本地安装MySQL的Lib目录路径。Lib目录下还有debug和opt两个目录,建议选debug。(我的是D:\Program Files\MySQL\MySQL Server 5.0\lib\debug)。
(3)在“Project settings->Link:Object/library modules”里面添加“libmysql.lib”。
(4)在stdafx.h里面添加如下的内容:
#include "mysql.h"
#include "winsock.h"
#pragma comment(lib,"libmySQL.lib")
(5)建议将“libmySQL.lib、libmySQL.dll”拷到你所建的工程的目录下。
三、数据库、表的创建
打开“开始->所有程序->MySQL->MySQL Server 5.0->MySQL Command Line Client.exe”,如果没有设置密码就直接按回车,会提示服务器启动成功。
mysql> SHOW DATABASES;//显示所有的数据库,注意一定要 敲“;”后再按回车
mysql> CREATE DATABASE test;//创建数据库test
mysql> USE test;//选择你所创建的数据库mydb
mysql> SHOW TABLES; //显示数据库中的表
mysql> CREATE TABLE mytable (username VARCHAR(100), visitelist VARCHAR(200),
remark VARCHAR(200));//创建一个表mytable: 用户名;访问列表;备注
mysql> DESCRIBE mytable;//显示表的结构
源码使用说明:
1、MySQL目录为mysql 5.1.44的精简版,只要修改my.ini文件中的两个参数中的“c:/”为相应目录即可:
basedir="c:/MySQL/"
datadir="c:/MySQL/Data/"
2、运行MySQL\bin下的createmysqlsvc.bat将mysql注册成服务,再运行startmysql.bat启动服务即可使用mysql。注意root密码
3、运行MySqlVcDemo.exe即可参看效果。
一、VC代码解释
(1)mysql初始化
mysql_init (&mysql); //数据库连接句柄
if(!mysql_real_connect(&mysql,"localhost","root","1","test",3306,NULL,0))
{ //test为源码中自带数据库名,3306为端口号,可自行设定
AfxMessageBox("数据库连接失败");
return FALSE;
}
mysql_query(&mysql, "SET NAMES 'gb2312'");//加上这句就能解决乱码
(2)添加
CString strUsername,strList,strRemark;
GetDlgItem(IDC_EDIT_USERNAME)->GetWindowText(strUsername);
GetDlgItem(IDC_EDIT_VISITELIST)->GetWindowText(strList);
GetDlgItem(IDC_EDIT_REMARK)->GetWindowText(strRemark);
CString strSQL;
strSQL.Format("insert into mytable(username,visitelist,remark) values(\'%s\',\'%s\',\'%s\')",strUsername,strList,strRemark); //注意一定要写在一行,而且必须要有\'\'
if(mysql_real_query(&mysql,(char*)(LPCTSTR)strSQL,(UINT)strSQL.GetLength())!=0)
{
AfxMessageBox("增添失败");
}
(3)修改
CString strUsername,strList,strRemark; //str_PreName用于记录想要修改的行,详情请看源代码
GetDlgItem(IDC_EDIT_USERNAME)->GetWindowText(strUsername);
GetDlgItem(IDC_EDIT_VISITELIST)->GetWindowText(strList);
GetDlgItem(IDC_EDIT_REMARK)->GetWindowText(strRemark);
CString strSQL;
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)读取表格内容到CListCtrl控件m_list
m_list.DeleteAllItems();
//////////////////////////////////////////////////////////////////////////
char *ch_query;
ch_query="select * from mytable";
if(mysql_real_query(&mysql,ch_query,(UINT)strlen(ch_query))!=0)
{
AfxMessageBox("数据库中表格出错");
}
CString str;
MYSQL_RES *result;
MYSQL_ROW row;
if(!(result=mysql_use_result(&mysql)))
{
AfxMessageBox("读取数据集失败");
}
int i=0;
while(row=mysql_fetch_row(result)){
str.Format("%s",row[0]);
m_list.InsertItem(i,str);
str.Format("%s",row[1]);
m_list.SetItemText(i,1,str);
str.Format("%s",row[2]);
m_list.SetItemText(i,2,str);
i++;
}
mysql_free_result(result);
(6)关闭数据库
mysql_close(&mysql);//最好写到OnDestroy()函数中
二.说明
1、mysql数据库不用安装,操作简便;
2、mysql 数据库API文件头不用设置;
3、不用建立数据库及表,减少学习难度。
注:如果要自己动手,请参考附录
附录:
一、MySQL的安装
直接在http://www.mysql.com/downloads/mysql下载,注意选择“完全安装”(只有这样才会安装VC编译时需要的头文件等)。安装后期会进行服务器配置,你可以设置你的服务器登陆密码,也可以不设置密码。
二、VC6.0的设置
(1)打开VC6.0 工具栏Tools菜单下的Options选项,在Directories的标签页中右边的“Show directories for:”下拉列表中选中“Includefiles”,然后在中间列表框中添加你本地安装MySQL的include目录路径。(范例中直接复制include到根目录下)。
(2)在上面说到的“Show directories for:”下拉列表中选中“Library files”,然后添加你本地安装MySQL的Lib目录路径。Lib目录下还有debug和opt两个目录,建议选debug。(我的是D:\Program Files\MySQL\MySQL Server 5.0\lib\debug)。
(3)在“Project settings->Link:Object/library modules”里面添加“libmysql.lib”。
(4)在stdafx.h里面添加如下的内容:
#include "mysql.h"
#include "winsock.h"
#pragma comment(lib,"libmySQL.lib")
(5)建议将“libmySQL.lib、libmySQL.dll”拷到你所建的工程的目录下。
三、数据库、表的创建
打开“开始->所有程序->MySQL->MySQL Server 5.0->MySQL Command Line Client.exe”,如果没有设置密码就直接按回车,会提示服务器启动成功。
mysql> SHOW DATABASES;//显示所有的数据库,注意一定要 敲“;”后再按回车
mysql> CREATE DATABASE test;//创建数据库test
mysql> USE test;//选择你所创建的数据库mydb
mysql> SHOW TABLES; //显示数据库中的表
mysql> CREATE TABLE mytable (username VARCHAR(100), visitelist VARCHAR(200),
remark VARCHAR(200));//创建一个表mytable: 用户名;访问列表;备注
mysql> DESCRIBE mytable;//显示表的结构
VC范例-操作MySQL
VC操作PowerPoint
[Python]用Python操作Mysql
学习MySQL常用操作命令
KA卖场操作流程范例
VC操作word实例详解
KA卖场操作流程范例2
vc++操作注册表实现自启动程序
mySQL
基于 Visual C++6.0 的声音文件操作 - VC & MFC - ★ VC 驿站...
VC操作Excel - hope多多的日志 - 网易博客
孙鑫VC视频教程笔记之第十二课“文件操作(含注册表操作)”
[MySQL]mysql命令集锦
VC(C)操作文件之-文件的打开(fopen函数)
VC数字图像处理编程之一----BMP图像的基本操作 -- 深夜孤灯's Blog
MySQL学习
MySql-InnoDB
MySQL错误代码
[MySQL]mysql 启动不起来
写作范例
日常工作-范例
祭文范例
室内设计范例
essay范例