Pro里添加
QT += sql
打开数据库
QSqlDatabase db= QSqlDatabase::addDatabase("QSQLITE");/* QMYSQL*/
db.setHostName("127.0.0.1");//数据库主机名
db.setUserName("root");//用户名
db.setPassword("666666");//密码
db.setDatabaseName("mydb");//数据库名字
if(!db.open()){
qDebug()<<db.lastError().text();
exit(0);
}
qDebug()<<"open";
db.exec("create table users (name char(25),password char(20),question char(25),answerchar(25))");
//通过exec可以执行sql语句来操作sql
db.exec("insert into users values('admin','123456','最喜欢的球星叫什么?','myself')");
QString strname=record.fieldName(0);//根据索引获得字段的名称 //strname:"name"
QSqlField field=record.field(3);//field.name()="answer"
qDebug()<<strname<<field.name();
QSqlTableModel
头文件 #include <QSqlTableModel>
/* 初始化 关联数据库*/
QSqlTableModel model; //数据表对应的数据结构 可指定数据库 不然就是默认数据库
model.setTable("users");
model.select();
//在筛选和排序的条件下,将数据库中符合要求的在mode表格中显示出来
***或者***
model.setFilter("name='newuser2'");//过滤
//筛选,按照字符串filter对数据库进行筛选,相当于SQL中的WHERE语句
**获得表的行数**
int rowNum = model->rowCount();//行数
int columnNum =model->columnCount(); // 返回列数
/* insert 插入*/
record.setValue("name","newuser");
record.setValue("password","123456");
record.setValue("question","你的主队是哪队?");
record.setValue("answer","洛杉矶湖人队");
model.insertRecord(-1,record);
model.submitAll();//提交上数据库
/* 修改 */
model.setData(model.index(0,0),"lpj");//行列修改
model.submitAll();//提交上数据库
/*删除*/
model->removeRow(curRow);
/*撤销*/
model->revertAll();
本文详细介绍如何在Qt中配置并使用SQLite数据库,包括数据库连接、表创建、数据插入及模型操作等关键步骤,适用于初学者快速掌握Qt数据库操作。
1819

被折叠的 条评论
为什么被折叠?



