前言:
准备转向Qt开发,打算把学习过程记录下来,无数次有过记录学习过程的想法但都没有实现,希望自己这次能坚持下去。
正题:
如果不知道Qt是什么,或者不知道Windows下怎么安装,去百度一下吧,这里直接入正题。
本文示例成功运行的前提是电脑上已经运行了SQL Server并且有数据库及数据表。
1、新建工程:
打开Qt Creator,File -> New File or Project,左边选择 Qt Widget Project,右边选择Qt Gui Application
单击Choose;填写工程名称(这里是1)及选择目录
-> Next -> Next -> Next -> Finish,工程顺利生成并自动回到了主界面,单击一下左边的绿色小三角,就会编译运行这个空白的程序。
2、连接数据库:
要连接数据库,就要手工向工程里面的相关文件添加代码,具体如下:
1.pro:添加一行 QT += sql
main.cpp:添加引用
- #include <QtGui/QApplication>
- #include "mainwindow.h"
- //以下是手工添加的引用
- #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("192.168.1.252")
- .arg("数据库名")
- .arg("登录名")
- .arg("密码")
- );
- if (!db.open())
- {
- QMessageBox::critical(0, qApp->tr("Cannot open database"),
- db.lastError().databaseText(), QMessageBox::Cancel);
- }
- }
- int main(int argc, char *argv[])
- {
- QApplication a(argc, argv);
- MainWindow w;
- w.show();
- //打开数据库
- OpenDatabase();
- return a.exec();
- }
双击 mainwindow.ui 拖一个TableView和一个PushButton到界面上,然后在PushButton上右键 -> Go to slot -> OK
mainwindow.cpp文件代码如下
- #include "mainwindow.h"
- #include "ui_mainwindow.h"
- //手工添加以下引用
- #include <QSqlQueryModel>
- MainWindow::MainWindow(QWidget *parent) :
- QMainWindow(parent),
- ui(new Ui::MainWindow)
- {
- ui->setupUi(this);
- }
- MainWindow::~MainWindow()
- {
- delete ui;
- }
- void MainWindow::on_pushButton_clicked()
- {
- QSqlQueryModel *model = new QSqlQueryModel;
- model->setQuery("select * from product");//这里直接设置SQL语句,忽略最后一个参数
- 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);
- }
- }
3、保存并运行:
保存所有代码,单击左边绿色三角形编译运行
单击顺利运行弹出的窗体上的按钮,顺利查询出数据库记录!