QT SQL链接

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:添加引用  

 
 
  1. #include <QtGui/QApplication> 
  2. #include "mainwindow.h" 
  3.  
  4. //以下是手工添加的引用 
  5. #include <QSqlDatabase> 
  6. #include <QSqlError> 
  7. #include <QMessageBox> 
  8.  
  9. //这个是手工添加的函数 
  10. void OpenDatabase() 
  11. { 
  12.     QSqlDatabase db=QSqlDatabase::addDatabase("QODBC"); 
  13.     db.setDatabaseName(QString("DRIVER={SQL SERVER};" 
  14.                                "SERVER=%1;" //服务器名称 
  15.                                "DATABASE=%2;"//数据库名 
  16.                                "UID=%3;"           //登录名 
  17.                                "PWD=%4;"        //密码 
  18.                                ).arg("192.168.1.252") 
  19.                        .arg("数据库名") 
  20.                        .arg("登录名") 
  21.                        .arg("密码") 
  22.                        ); 
  23.     if (!db.open()) 
  24.     {
  25.         QMessageBox::critical(0, qApp->tr("Cannot open database"), 
  26.                               db.lastError().databaseText(), QMessageBox::Cancel); 
  27.  
  28.     } 
  29. } 
  30.  
  31. int main(int argc, char *argv[]) 
  32. { 
  33.     QApplication a(argc, argv); 
  34.     MainWindow w; 
  35.     w.show(); 
  36.      
  37.     //打开数据库 
  38.     OpenDatabase(); 
  39.      
  40.     return a.exec(); 
  41. } 

双击 mainwindow.ui 拖一个TableView和一个PushButton到界面上,然后在PushButton上右键 -> Go to slot -> OK 

 

mainwindow.cpp文件代码如下 

 
 
  1. #include "mainwindow.h" 
  2. #include "ui_mainwindow.h" 
  3.  
  4. //手工添加以下引用 
  5. #include <QSqlQueryModel> 
  6.  
  7. MainWindow::MainWindow(QWidget *parent) : 
  8.     QMainWindow(parent), 
  9.     ui(new Ui::MainWindow) 
  10. { 
  11.     ui->setupUi(this); 
  12. } 
  13.  
  14. MainWindow::~MainWindow() 
  15. { 
  16.     delete ui; 
  17. } 
  18.  
  19. void MainWindow::on_pushButton_clicked() 
  20. { 
  21.     QSqlQueryModel *model = new QSqlQueryModel; 
  22.     model->setQuery("select * from product");//这里直接设置SQL语句,忽略最后一个参数 
  23.     ui->tableView->setModel(model); 
  24.  
  25.     //以下是视觉方面的效果,不加也没影响 
  26.  
  27.     //隔行变色 
  28.     ui->tableView->setAlternatingRowColors(true); 
  29.  
  30.     //设置行高 
  31.     int row_count = model->rowCount(); 
  32.     for(int i =0; i < row_count; i++) 
  33.     { 
  34.         ui->tableView->setRowHeight(i, 20); 
  35.     } 
  36. } 

3、保存并运行: 

保存所有代码,单击左边绿色三角形编译运行 

单击顺利运行弹出的窗体上的按钮,顺利查询出数据库记录!