zoukankan      html  css  js  c++  java
  • QT数据库操作

    浏览:

                 在QSqlQuery类中当执行exec()后会把指针放在记录集中第一个记录之上,所以需要调用QSqlQuery::next()来获取第一个数据,下面通过循环体来遍历所有表中的数据。

            

     while(query.next())
    {
                QString name = query.value(0).toString();
               qDebug()<<name;
     }

    QSqlQuery::value()函数得到当前记录区域中的数据,QSqlQuery::value()默认返回的是一个QVariant类型,Qt提供了几种可远的类型支持,它们是C++的基本的类型,如:int,QString,QByteArray。对于不同类型的转换需要使用Qt提供的函数来实现,例如QVariant::toString()与QVaniant::toInt().

    删除: 

    QSqlQuery query;
    bool  value;
    value = query.exec(“delete from book where ID = “‘+id+”’”);
     if(value)
          QMessageBox::information(this"notice","add sucessful!");
     else
         QMessageBox::information(this"notice","add failed!");

    修改:

    QSqlQuery query;
    bool  value;
    value = query.exec(“update book name set name=“‘+name+'"”);
    if(value)
         QMessageBox::information(this"notice","add sucessful!");
     else
         QMessageBox::information(this"notice","add failed!");

    使用了prepare()函数:

    query.prepare("insert into student(id, name)  values (?, ?)");
    query.bindValue(0, 5);
    query.bindValue(1, "sixth");
    query.exec();
    
    也可以利用addBindValue()函数,这样就可以省去编号,它是按顺序给属性赋值的,如下:
    query.prepare("insert into student(id, name)  values (?, ?)");
    query.addBindValue(5);
    query.addBindValue("sixth");
    query.exec();

    QSqllite好像不支持size函数,在StackOverflow上看到一个方法可以达到效果:

    QSqlQuery q;
    q.exec("select * from table");
    q.last();
    qDebug() << q.at() + 1;

         

  • 相关阅读:
    [zz]libvirt中CPU和内存的细粒度管理机制
    SAP 模块中文解释
    邪恶的Php一句话木马 assert函数制作简单木马
    PHP开发中三维数组的应用
    返回本机时间或服务器时间
    向SQL中插入数据
    Word的字体
    人生如锅
    打开指定的文件
    计算最大序号
  • 原文地址:https://www.cnblogs.com/ph829/p/6106393.html
Copyright © 2011-2022 走看看