前置要求:配置好Mysql Driver 否则可能出现 QMYSQL driver not loaded
1.数据库的连接
需要的头文件
#include <QSqlDatabase>
#include <QSqlDriver>
代码
db = QSqlDatabase::addDatabase("QMYSQL"); //选择Driver
db.setHostName(hostName); //设置数据库地址(字符串)
db.setPort(port); //设置数据库端口(整型)
db.setUserName(userName); //设置用户名(字符串)
db.setPassword(userPassword); //设置密码(字符串)
db.setDatabaseName("test"); //选择数据库名字(字符串)
可以用
if (!db.open())
{
QMessageBox::warning(this, "警告", "数据库连接失败");
}else
{
QMessageBox::about(this,"连接成功","数据库连接成功");
}
简单判断是否连接成功
2.数据库指令的执行
需要的头文件
#include <QSqlQuery>
#include <QSqlError>
代码
QSqlQuery query;
str = QString("SELECT * FROM smatch WHERE tno LIKE '%1%'").arg(ui->lineEdit_5->text());//ui->lineEdit_5->text()为输入的变量 替换了%1的位置
query.exec(str);
可以用
query.first();
if (query.value(0).toString().size() == 0)
{
QMessageBox::warning(this, "警告", "结果为空");
return;
}
if (query.lastError().text().size() != 0)
{
ui->textEdit->setText(query.lastError().text()); //ui->textEdit为输出文本框
return;
}
else
do
{
QString res = QString("比赛编号:%1 运动项目:%2 运动员姓名:%3 代表队:%4 时间:%5 地点:%6 ").arg(query.value(0).toString()).arg(query.value(1).toString())
.arg(query.value(2).toString()).arg(query.value(3).toString())
.arg(query.value(4).toString()).arg(query.value(5).toString());
ui->textEdit->append(res);
}while (query.next());
}
进行结果或者报错的输出
Q.E.D.