1.首先我是用的是 网上的免费的mysql 数据库 ,
1.申请步骤
2.链接 :SQLPub - 免费的MySQL数据库
2..测试数据库是否可以使用
头文件:
#include <QSqlDatabase>//数据库
#include <QDebug>//输出
#include <QStringList>//存储大量的QSting
#include <QMessageBox>//
#include <QSqlQuery>
#include <QSqlError>//数据库操作错误的报错头文件
1.测试代码放入 QT 的main .cpp里面 的int main 函数里面
//使用MySQL数据库驱动建立一个数据库连接
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
/*----- 设置主机信息 -----*/
db.setHostName("IP"); //设置主机
db.setDatabaseName("dbname"); //设置数据库名称
db.setUserName("user"); //设置用户名
db.setPassword("password"); //设置密码
bool ok = db.open(); //连接数据库
2.出现问题 (判断代码自己写)
3.解决方案
链接:https://pan.baidu.com/s/1QO5ulvi_vbST98qVpBsvYg?pwd=6666#list/path=%2F
动态库下载 :libmysql.dll 文件
4.再次测试就行了 (判断代码自己写 , 下面也有)
3.数据库的使用
1.打开数据库
/***** 加载数据信息 *****/
//使用MySQL数据库驱动建立一个数据库连接
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
/*----- 设置主机信息 -----*/
db.setHostName("免费的mysql 的ip 地址"); //设置主机 //网络数据库需要自己搞
db.setDatabaseName(" 数据库名称 "); //设置数据库名称
db.setUserName(" 用户名 "); //设置用户名
db.setPassword(" 密码 "); //设置密码
bool ok = db.open(); //连接数据库
if (ok)
{
qDebug()<<"打开成功";
}
else
{
qDebug()<<"打开失败";
}
2.建立一个表
/****** 建表 *****/
QSqlQuery query(db);
QString sql1 = "create table student(id int,name text,age int,score int);";//id 名字 年龄 学分
ok=query.exec(sql1);
if(ok)
{
qDebug()<<"创表成功";
}
else
{
qDebug()<<query.lastError()<<endl;
qDebug()<<"创表失败";
}
3.打印一个表里面所有的信息
/*** 查询数据 ***/
QSqlQuery sql(db);
QString str_sql_select = QString("select * from student");//根据账号查询
if(sql.exec(str_sql_select) == true)
{
qDebug()<<"查询成功";
while(sql.next() == true)
{
QString a1= sql.value(0).toString();
QString b1= sql.value(1).toString();
QString c1= sql.value(2).toString();
QString d1= sql.value(3).toString();
qDebug()<< "a1 = "<<a1<<"\tb1 = "<<b1<<"\tc1 = "<<c1<<"\td1 = "<<d1;
}
}
4.查询一个表里面 特定的信息的数据
/*** 查询数据 ***/
QSqlQuery sql(db);
//QString str_sql_select = QString("select * from student where id = '%1';").arg("1");//根据账号查询
if(sql.exec(str_sql_select) == true)
{
qDebug()<<"查询成功";
while(sql.next() == true)
{
QString a1= sql.value(0).toString();
QString b1= sql.value(1).toString();
QString c1= sql.value(2).toString();
QString d1= sql.value(3).toString();
qDebug()<< "a1 = "<<a1<<"\tb1 = "<<b1<<"\tc1 = "<<c1<<"\td1 = "<<d1;
if(a1=="1" && b1=="gw")
{
qDebug()<<"有这个账号 "<<"id = "<<a1<<"name " << b1;
}
}
}
5.插入数据
/******** 插入数据 **********/
QSqlQuery sql(db);
QString m_id("1");
QString m_name("gw");
QString m_age("18");
QString m_score("180");
QSqlQuery sql(db);
QString str_sql_insert = QString("insert into student values('%1','%2','%3','%4');").arg(m_id,m_name,m_age,m_score);//生成语句
if(sql.exec(str_sql_insert) == false)
{
qDebug() << "执行SQL失败 插入数据失败:" << sql.lastError() << endl;
}
else
{
qDebug() << "执行成功SQL语句 插入数据成功" << endl;
}
6.删除表里面的数据
/*** 删除数据 ****/
QSqlQuery sql(db);
QString str_sql_delete=QString("delete from student where name = '%1'").arg("180");
if(sql.exec(str_sql_delete) == true)
{
qDebug()<<"删除 成功";
}
7. 删除表
/*** 删除表 ****/
QSqlQuery sql(db);
QString str_sql_delete=QString("drop table student;");
if(sql.exec(str_sql_delete) == true)
{
qDebug()<<"删除 表成功";
}
else
{
qDebug() <<"删除表失败 ";
}