Qt 通过QSqltablemodel操作sql

本文详细介绍如何在Qt中配置并使用SQLite数据库,包括数据库连接、表创建、数据插入及模型操作等关键步骤,适用于初学者快速掌握Qt数据库操作。

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();
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值