对QSqlite数据库的操作

首先新建一个数据库:

QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName("database.db");

 

给数据库文件加密:

db.setUserName("hsl");

db.setPassword("000000"); //注意,这仅仅是对database.db这个文件进行加密

将数据库显示在QTableView中

QTableView *selectView;

QSqlTableModel *model;

 model=new QSqlTableModel(this);
    model->setTable("表名");
    model->setEditStrategy(QSqlTableModel::OnManualSubmit);
    model->select();
    model->setHeaderData(0,Qt::Horizontal,tr("xx"));
    model->setHeaderData(1,Qt::Horizontal,tr("xx"));
    model->setHeaderData(2,Qt::Horizontal,tr("xx"));

selectView=new QTableView(this);
    selectView->setAlternatingRowColors(true);//可以改变QableView颜色
    selectView->setModel(model);

 

对QtableView中的数据进行操作:

在tableview中升序排列:

model->setSort(0,Qt::AscendingOrder); //id属性,即第0列,升在tableview中序排列
model->select();


在tableview中按降序 排列:

model->setSort(0,Qt::DescendingOrder);
model->select();

在tableview中删除行
 int curRow = ui->tableView->currentIndex().row();   //获取选中的行  
 model->removeRow(curRow);  //删除该行
 int ok = QMessageBox::warning(this,tr(“删除当前行!”),tr(“你确定删除当前行吗?”),QMessageBox::Yes,QMessageBox::No);
 if(ok == QMessageBox::No)
 {    
         model->revertAll(); //如果不删除,则撤销
 } 
 else 
        model->submitAll();

在tableview中插入

 int rowNum = model->rowCount(); //获得表的行数
 int id = 10;
 model->insertRow(rowNum); //添加一行
 model->setData(model->index(rowNum,0),id);

对数据库表进行查询

(1)全字匹配

QString str = "hsl";

        model->setFilter(QObject::tr("name = '%1'").arg(str));
        model->select();

(2)模糊匹配

 QString str = a_ui->find_lineEdit->text();
       //QT正则表达式
       rx.setPatternSyntax(QRegExp::RegExp);
       //匹配格式为所有数字组成的字符串,位数不限
       rx.setPattern(QString("^[0-9]+$"));
       //如果全是数字,进行 ID 的模糊查询
       if(rx.exactMatch(str))
        {
            model->setFilter(QString::fromLocal8Bit("dish_no like '%1'").arg(QString("%")+=str+=QString("%")));
            model->select();
        }
        else
        {
            model->setFilter(QString::fromLocal8Bit("dish_name like '%1'").arg(QString("%")+=str+=QString("%")));
            model->select();
        }

 

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

厦门Linux嵌入式+Qt开发

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值