qt连接sql server 需要配置ODBC数据源
一、数据源配置
控制面板 → 管理工具 → ODBC 数据源
数据源名称自起(等会儿代码中会用到)。
服务器输入要连接服务器名称。
录入登录名,密码
选择要操作的数据库
完成
测试数据库能否连接
服务器:
二、程序代码
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QSqlQuery>
#include <QSqlDatabase>
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
private slots:
void on_pushButton_clicked();
private:
Ui::MainWindow *ui;
QSqlDatabase db;
};
#endif // MAINWINDOW_H
#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QtDebug>
#include <QSqlQuery>
#include <QSqlDatabase>
#include <QSqlError>
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
db = QSqlDatabase::addDatabase("QODBC");
db.setHostName("(local)");//服务器名
db.setDatabaseName("mytest");//数据源名
db.setUserName("sa");//连接数据库用户名
db.setPassword("123456");//连接数据库密码
}
MainWindow::~MainWindow()
{
delete ui;
}
void MainWindow::on_pushButton_clicked()
{
if(!db.open())
{
qDebug() << "database open faile!";
qDebug()<<db.lastError().text();
return;
}
else
{
qWarning()<<"database open success!";
}
QSqlQuery query(db);
QString str = "select * from table1;";
if(query.exec(str))
{
qDebug()<<"sucess";
}
else
{
qDebug()<<"faile"<<query.lastError();
}
}