Qt获取数据库中的表的个数,表的名字,表的个数,表的字段名,表的字段类型

源码分享:

在这里插入代码片#include <QtCore/QCoreApplication>
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
 
bool outPutTableInfo(QString tableNmae);
bool outputDatabaseInfo(QSqlDatabase databaseName);
 
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    
    QSqlDatabase database = QSqlDatabase::addDatabase("QSQLITE");
    database.setDatabaseName("cashregistersystem.db");
    outputDatabaseInfo(database);
    
    return a.exec();
}
 
bool outputDatabaseInfo(QSqlDatabase database)
{
    if (database.open())
    {
        qDebug() << "Open database success!";
        QStringList tables = database.tables();  //获取数据库中的表
        qDebug() << QString::fromLocal8Bit("表的个数: %1").arg(tables.count()); //打印表的个数
        QStringListIterator itr(tables);
        while (itr.hasNext())
        {
            QString tableNmae = itr.next().toLocal8Bit();
            qDebug() << QString::fromLocal8Bit("表名:")+ tableNmae;
            
            outPutTableInfo(tableNmae);
        }
    }
    else
    {
        qDebug() << "Open database failed!";
        return false;
    }
    return true;
}
 
bool outPutTableInfo(QString tabNmae)
{
    QSqlQuery query;
    QString strTableNmae = tabNmae;
    QString str = QString("select  column_name,column_type from information_schema.columns where table_name='%1'").arg(strTableNmae);
    
    query.prepare(str);
    if (query.exec())
    {
        while (query.next())
        {
            qDebug() << QString(QString::fromUft8("字段数:%1     字段名:%2     字段类型:%3")).arg(query.value(0).toString()).arg(query.value(1).toString()).arg(query.value(2).toString());
        }
    }
    else
    {
        qDebug() << query.lastError();
        return false;
    }
    return true;
}

运行截图:

Qt获取数据库中的表的个数,表的名字,表的个数,表的字段名,表的字段类型_第1张图片

Qt之操作数据库(SQLite)实例:http://blog.csdn.net/rl529014/article/details/52127173

原文链接:https://blog.csdn.net/rl529014/article/details/52424541

你可能感兴趣的:(qt,数据库)