您的位置:首页 > 编程语言 > Qt开发

Qt中操作数据库例子-插入数据

2017-03-07 20:57 357 查看
一般流程:

创建数据库

连接数据库

增删查改

关闭数据库

环境:win7,vs2013,Qt5.6.0(32 bit),qt add in 1.2.5

创建控制台工程,记得勾选SQL模块,如果忘记勾选:VS”Qt”菜单-“Qt Project Settings”-“Qt Modules”-勾选SQL。

连接数据库的函数:

bool createConnection(QString driver, QString dbName)
{
//addDatabase()的第一个参数
//指定了Qt必须使用哪一个数据库驱动程序来访问这个数据库
QSqlDatabase db = QSqlDatabase::addDatabase(driver);

//接下来,设置数据库的主机名、数据库名、用户名和密码
//QSQLITE只需要设置名字就行了
db.setDatabaseName(dbName);

//打开这个连接,失败将显示出错信息
if (!db.open())
{
//QtSql 模块中的类大多具有lastError()函数,用于检查最新出现的错误
qDebug() << db.lastError();
return false;
}
return true;
}


如果习惯于使用 SQL 语句,我们可以选择
QSqlQuery
类;

如果只需要使用高层次的数据库接口(不关心 SQL 语法),我们可以选择
QSqlTableModel
QSqlRelationalTableModel


Qt 学习之路 2

主函数:

int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);

//数据库驱动程序名
QString driver = "QSQLITE";

//数据库名,绝对相对路径都可
QString dbName = "testli.db";
//QString dbName = "D:\\QT\\project\\55_DataBase\\testli1.db";

//连接数据库,连接失败则返回
if (!createConnection(driver, dbName))
{
return 1;
}

//创建QSqlTableModel实例
QSqlTableModel model;

//设置所需要操作的表格
model.setTable("measureRecords");

//获取系统时间
QString time = QDateTime::currentDateTime().toString("yyyy-MM-dd hh:mm:ss");

//获取一个空的record,但是与数据库表有一样的字段空间?不然插入会失败
//帮助文档:It returns an empty record, having only the field names.
QSqlRecord record = model.record();

//设置各字段键值
record.setValue("measureTime", time);
record.setValue("measureNumber", 12);
record.setValue("length", 32);
record.setValue("width", 32);
record.setValue("height", 32);
record.setValue("volume", 45);
record.setValue("weight", 332);

//插入,-1代表插入到行尾
model.insertRecord(-1, record);

return a.exec();
}


代码在这里

参考:

C++ Qt设计模式(豆瓣)第18章为数据库的介绍

C++GUI Qt4编程(豆瓣)第13章为数据库的介绍

Qt 学习之路 2
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐