测试使用QT来连接SQLServer并取出表格数据

添加引用

工程文件需要加入 

QT += sql

在main.cpp添加头文件引用

//添加头文件
#include <qdebug.h>
#include <QSqlDatabase>
#include <QSqlError>
#include <QSqlQuery>

连接数据库

  QSqlDatabase db=QSqlDatabase::addDatabase("QODBC");
    db.setDatabaseName(QString("DRIVER={SQL SERVER};"
                               "SERVER=%1;" //服务器名称
                               "DATABASE=%2;"//数据库名
                               "UID=%3;"           //登录名
                               "PWD=%4;"        //密码
                               )
                       .arg("localhost")
                       .arg("TEST1")
                       .arg("sa")
                       .arg("111111")
                       );
    if (!db.open())    {
        qDebug()<<"connect sql server failed!";

    } else {
        qDebug()<<"connect sql server successfully!";
    }

获取得当前连接数据所有表名

  qDebug() <<  "取得所有表名";
  QStringList tabelle = db.tables(QSql::Tables);
  qDebug() << tabelle.join(",");


获取表数据

qDebug() <<  "查询表t1并取出数据";
  //查询数据
  //QSqlQuery sql_query(db);
  QSqlQuery sql_query("select name from dbo.t1" );

    while(sql_query.next())
    {
      //  int id = sql_query.value(0).toInt();
        QString name = sql_query.value(0).toString();
       // int age = sql_query.value(2).toInt();
        qDebug()<<QString("name:%1 ").arg(name);
    }

测试结果

测试使用QT来连接SQLServer并取出表格数据_SQLServer


在测试过程遇到错误:QSqlDatabase: QODBC driver not loaded

测试使用QT来连接SQLServer并取出表格数据_SQLServer_02

将QT安装目录中 plugins\sqldrivers复制Debug或release下即可

例如:D:\Qt\Qt5.9.9\5.9.9\mingw53_32\plugins\sqldrivers

测试使用QT来连接SQLServer并取出表格数据_sql_03

复制到 

测试使用QT来连接SQLServer并取出表格数据_QODBC_04

复制时注意构建配置的Debug还是Release

测试使用QT来连接SQLServer并取出表格数据_QT_05