Qt连接SQL-Server

    技术2022-07-16  68

    之前连接Mysql时花了两天都没弄好,后来期末做C#项目老师要求用sql -server做,抱着尝试的心理上网搜了一下Qt连接sql的操作,居然一次就成功了,在这里分享一下。

    首先创建一个数据库:

    注意要记得数据库的登录名和密码:
    我在这里创建了一个test数据库以及一个StudentInformation的表

    接下来到Qt中来操作 首先在.pro中添加QT+=sql

    main()函数中代码如下:

    #include "widget.h" #include <QApplication> #include <QSqlDatabase> #include <QStringList> #include <QDebug>//以下是手工添加的引用 #include <QSqlDatabase> #include <QSqlError> #include <QMessageBox> void OpenDatabase() { QSqlDatabase db=QSqlDatabase::addDatabase("QODBC"); db.setDatabaseName(QString("DRIVER={SQL SERVER};" "SERVER=%1;" //服务器名称 "DATABASE=%2;"//数据库名 "UID=%3;" //登录名 "PWD=%4;" //密码 ) .arg("DESKTOP") //输入服务器名称 .arg("test") //输入数据库名称 .arg("sa") //输入登录名 .arg(" ")//输入登录密码 ); if (!db.open()) //打开错误条件下 { QMessageBox::critical(0, qApp->tr("Cannot open database"), db.lastError().databaseText(), QMessageBox::Cancel); } else //如果打开成功输出success { qDebug()<<"success"; } } int main(int argc, char* argv[]) { QApplication a(argc, argv); Widget w; w.show(); //打开数据库 OpenDatabase(); return a.exec(); }

    cpp源码:

    #include "widget.h" #include "ui_widget.h" #include <QSqlQueryModel> Widget::Widget(QWidget *parent) : QWidget(parent) , ui(new Ui::Widget) { ui->setupUi(this); } Widget::~Widget() { delete ui; } void Widget::on_pushButton_clicked() { QSqlQueryModel *model = new QSqlQueryModel; model->setQuery("select * from StudentInformation");//这里直接设置SQL语句,忽略最后一个参数 StudentInformation为要操作的表名 ui->tableView->setModel(model); //以下是视觉方面的效果,不加也没影响 //隔行变色 ui->tableView->setAlternatingRowColors(true); //设置行高 int row_count = model->rowCount(); for(int i =0; i < row_count; i++) { ui->tableView->setRowHeight(i, 20); } }

    相关控件:

    执行结果如下:

    输出success表示打开成功

    在窗口中点击显示按钮:

    Processed: 0.008, SQL: 9