QT数据库中的数据在窗体中显示

来源:互联网 发布:数据同步是什么意思 编辑:程序博客网 时间:2024/06/06 14:23

数据库插入语句容易出错,例如我在写实例时出现的错误:

query.exec("createtable Scooter(id integer,name varchar,maxspeed integer,maxrange integer, weightinteger,descriptionvarchar) "); // 后边的括号忘掉了

 

/ /   连接数据库

void test_sql::createConnect()

{
    db = QSqlDatabase::addDatabase("QSQLITE");
    db.setHostName("localhost");
    db.setDatabaseName("mytest.db");
    db.setUserName("root");
    db.setPassword("1234567");
    if(db.open()){qDebug("open success!");
    }
    QSqlQuery query;
    query.exec("create table Scooter(id integer,name varchar,maxspeed integer,maxrange integer, weight integer,description varchar) ");
    query.exec("INSERT INTO Scooter values(1,'yangjie',15,0,20,'foldader')");
    query.exec("INSERT INTO Scooter values(2,'ee',20,6,45,'carry')");
    query.exec("select * from Scooter");
    //    qDebug()<<query.numRowsAffected();
    //    if(query.isActive()){
    //        qDebug("is active!!");
    //    }
    while( query.next()){
        qDebug()<< query.value(0).toInt()<<","<<query.value(1).toString();
    }
    query.exec("drop Scooter");
}

 

void test_sql::showView()

{

                  model= newQSqlTableModel();

        model->setTable("Scooter");   // 与数据库的名字一致
        model->setSort(Scooter_Name,Qt::AscendingOrder);
        model->setHeaderData(Scooter_Name,Qt::Horizontal,"Name");
        model->setHeaderData(Scooter_MaxSpeed,Qt::Horizontal,"MPH");
        model->setHeaderData(Scooter_MaxRange,Qt::Horizontal,"Miles");
        model->setHeaderData(Scooter_Weight,Qt::Horizontal,"Lbs");
        model->setHeaderData(Scooter_Description,Qt::Horizontal,"Description");
        qDebug()<<model->rowCount();
        model->select();
        qDebug()<<model->rowCount();
        view = new QTableView;
        view->setModel(model);
        view->setSelectionMode(QAbstractItemView::SingleSelection);
        view->setSelectionBehavior(QAbstractItemView::SelectRows);
        view->setColumnHidden(Scooter_Id,true);
        view->resizeColumnsToContents();
        view->setEditTriggers(QAbstractItemView::NoEditTriggers);
        QHeaderView  *header =view->horizontalHeader();
        header->setStretchLastSection(true);
        view->show();

}

 

结果:

 

 

0 0