【问题标题】:Can't connect Qt with database (SQLite)无法将 Qt 与数据库 (SQLite) 连接
【发布时间】:2014-10-06 11:05:21
【问题描述】:
pro:
QT       += core gui sql

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

TARGET = Game
TEMPLATE = app


SOURCES += main.cpp\
    mainwindow.cpp

HEADERS  += mainwindow.h

mainwindow.cpp:

#include "QtSql"
#include "QSqlDatabase"
//#include "QtDebug"
//#include "QFileInfo"


MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{


mydb = new QSqlDatabase::addDatabase("QSQLITE"); <------- ERROR LINE
mydb->setDatabaseName("C:/sqllite2/bazadannyh.sqlite");

bool ok = mydb->open();

widget = new QWidget();

mainwindow.h: 

#include <QSqlDatabase>
class MainWindow : public QMainWindow
{
Q_OBJECT

public:
MainWindow(QWidget *parent = 0);
~MainWindow();

QString *s;


QSqlDatabase *mydb;

我在这里声明了 mydb,因为否则我无法在我的公共插槽中访问它。可以吗?


main.cpp: 

#include "mainwindow.h"
#include <QApplication>
#include "QtGui"



int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
w.show();


return a.exec();
}

我选择声明数据库的地方是否正确?还是应该改?

错误:mainwindow.cpp:19:错误:预期的类型说明符 mydb = new QSqlDatabase::addDatabase("QSQLITE"); 预期的 ';'

帮帮我!我该怎么办?

【问题讨论】:

    标签: c++ qt sqlite


    【解决方案1】:

    标题:

    public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();
    
    QString *s;
    
    
    QSqlDatabase mydb;//not a pointer
    

    .cpp

    mydb = QSqlDatabase::addDatabase("QSQLITE");
    mydb.setDatabaseName("C:/sqllite2/bazadannyh.sqlite");
    
    bool ok = mydb.open();
    

    【讨论】:

    • mainwindow.cpp:20: error: cannot convert 'QSqlDatabase' to 'QSqlDatabase*' in assignment mydb = QSqlDatabase::addDatabase("QSQLITE");
    • @MedetKoilybay 请看我的编辑,应该很清楚如何解决这个问题。
    猜你喜欢
    • 2015-09-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-19
    • 1970-01-01
    • 2012-07-24
    • 1970-01-01
    相关资源
    最近更新 更多