qt 调用MySql

通用连接函数

bool MySqlTest::connnectMySql()
{
    if (QSqlDatabase::contains("mysql")) {
        db = QSqlDatabase::database("mysql");
    } else {
        db = QSqlDatabase::addDatabase("QMYSQL", "mysql");
    }

    // 连接服务器
    db.setHostName("localhost");
    //    db.setHostName("127.0.0.1");   //数据库服务器IP
    db.setUserName("root");         //数据库用户名
    db.setPassword("123456");     //数据库登录密码
    db.setDatabaseName("mytest");   //使用哪个数据库

    if (!db.open())
    {
        QMessageBox::critical(0, QObject::tr("连接错误"),
                              db.lastError().text());    // lastError()函数,用于检查最新出现的错误。
        return false;
    }

    return true;
}

使用时注意:      

1.  tModel = new QSqlTableModel(this,db);   需要添加 "db" 

2.  结束时候要关闭    db.close();//释放数据库

void MySqlTest::on_checkPushButton_clicked()
{
    bool open = connnectMySql();

    if (open)
    {
        tModel = new QSqlTableModel(this,db);
        tModel->setTable("student");
        tModel->setEditStrategy(QSqlTableModel::OnManualSubmit);   // 设置提交模式 -- 手动提交
        tModel->setSort(0,Qt::AscendingOrder);   // 第0列 升序排列
//        tModel->setSort(0,Qt::DescendingOrder);   // 第0列 降序排列

        tModel->select();           //选取整个表的所有行
        CountTheNumberOfPages(tModel);  // 计算显示的总页数
        UpdateStatus();   // 更新按钮状态

        int limitIndex = (currentPage - 1)*PageRecordCount;
        tModel->setFilter("id > " + QString::number(limitIndex) + " and id <= " +  QString::number(PageRecordCount * currentPage));
        tModel->select();           //选取整个表的所有行

        //设置表头名称,不设置则使用数据库中的名称
        tModel->setHeaderData(0, Qt::Horizontal, QStringLiteral("编号"));
        tModel->setHeaderData(1, Qt::Horizontal, QStringLiteral("姓名"));
        tModel->setHeaderData(2, Qt::Horizontal, QStringLiteral("年龄"));
        tModel->removeColumn(2);    //不显示表的第0列.(表从0开始)

        ui->tableView->setModel(tModel);
    }
    db.close();//释放数据库
}

 

 

 

 

你可能感兴趣的:(qt)