之前连接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
{
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");
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表示打开成功
在窗口中点击显示按钮:
转载请注明原文地址:https://ipadbbs.8miu.com/read-27898.html