Połączenie GUI w Qt z SQL

0

Cześć, przygotowałem GUI oraz połączyłem się z bazą MS SQL, ale teraz nie potrafię tego połączyć. Chcę w okienku wpisywac imie, nazwisko itd. i dodawać rekordy do bazy? gdzie powinno być wywołanie kl.show()? Co powinienem poprawić?

Zawartość main:

#include "mainwindow.h"
#include "dodajrower.h"
#include "dodajrezerwacja.h"
#include "dodajklienta.h"
#include "klienci.h"
#include <QApplication>


#include <QtCore/QCoreApplication>
#include <QtSql>
#include <QtDebug>

#include <iostream>
using namespace std;

int main(int argc, char *argv[])
{

     qDebug() << "START" << endl;
     QApplication a(argc, argv);
    //tworzenie poloczenia z basą
      QString servername = "LOCALHOST\\SQLEXPRESS";
    QString dbname  = "Projekt1";

    QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");

    db.setConnectOptions();

    QString dsn = QString ("DRIVER={SQL SERVER};SERVER=%1;DATABASE=%2;Trusted_Connection=YES;").arg(servername).arg(dbname);

    db.setDatabaseName(dsn);



    if(db.open())
    {
        qDebug() << "Opened! " ;

        QSqlQuery  qry;

        if(qry.exec("SELECT * FROM [Projekt1].[dbo].[tKlient]"))
        {
            while (qry.next()) {
            qDebug() << qry.value(1).toString();
            qDebug() << qry.value(2).toString();

            }
        }
        else{
             qDebug() << "Error = " << db.lastError().text();
        }

        qDebug() << "Closing... " ;
        db.close();
    }
    else
    {
        qDebug() << "LAST Error = " << db.lastError().text();
    }
    return a.exec();
}

Oraz dodajklienta:

#include "dodajklienta.h"
#include "ui_dodajklienta.h"
#include <QtSql>

dodajKlienta::dodajKlienta(QWidget *parent) :
    QDialog(parent),
    ui(new Ui::dodajKlienta)
{
    ui->setupUi(this);
}

dodajKlienta::~dodajKlienta()
{

    delete ui;
}

void dodajKlienta::on_leImie_returnPressed()
{

}

void dodajKlienta::on_lineNazwisko_returnPressed()
{

}

void dodajKlienta::on_lineUlica_returnPressed()
{

}

void dodajKlienta::on_lineNrDomu_returnPressed()
{

}

void dodajKlienta::on_lineNrMieszkania_returnPressed()
{

}

void dodajKlienta::on_linePESEL_returnPressed()
{

}

void dodajKlienta::on_lineAdresMailowy_returnPressed()
{

}

void dodajKlienta::on_lineKodPocztowy_returnPressed()
{

}

void dodajKlienta::on_lineMiejscowosc_returnPressed()
{

}

void dodajKlienta::on_pbZatwierdz_clicked()
{
    QString Nazwisko,Imie, Ulica, NrDomu, NrMieszkania, PESEL,AdresMiasto, AdresEmail, KodPocztowy, Miejscowosc;
    Nazwisko=ui->lineNazwisko->text();
    Imie=ui->leImie->text();
    Ulica=ui->lineUlica->text();
    NrDomu=ui->lineNrDomu->text();
    NrMieszkania=ui->lineNrMieszkania->text();
    PESEL=ui->linePESEL->text();
    AdresMiasto = ui->lineMiejscowosc->text();
    AdresEmail = ui->lineAdresMailowy->text();
    KodPocztowy = ui->lineKodPocztowy->text();
    Miejscowosc =ui->lineMiejscowosc->text();



        QString sQuery = "INSERT INTO [Projekt1].[dbo].[tKlient] (NAZWISKO, IMIE, PESEL,ADRES_MIASTO, ADRES_EMAIL, ADRES_KOD_POCZTOWY, ADRES_ULICA, ADRES_NR_BUDYNKU) VALUES (' "+Nazwisko+ " ', ' "+Imie+ " ',' "+PESEL+ " ',' "+AdresMiasto+ " ',' "+AdresEmail+ " ',' "+KodPocztowy+ " ',' "+Ulica+ " ',' "+NrDomu+ " ',)";
        QSqlQuery qryW;
        qryW.prepare(sQuery);
      //  qryW.bindValue(":IMIE","ADAM");
        /*
        qryW.bindValue(":NAZWISKO", "Janusz");
        qryW.bindValue(":PESEL","96062100000");
        qryW.bindValue(":ADRES_MIASTO","[email protected]");
        qryW.bindValue(":ADRES_EMAIL","[email protected]");
        qryW.bindValue(":ADRES_KOD_POCZTOWY","26-000");
        qryW.bindValue(":ADRES_ULICA","Waniliowa");
        qryW.bindValue(":ADRES_NR_BUDYNKU", 4);
*/
        if(qryW.exec()){
            qDebug()<< "Record wpisany";
        }else
        {
            qDebug() << "Error: nie wpisano recordu";
        }


}

void dodajKlienta::on_pbAnuluj_clicked()
{

}
0

do widget dodajesz QTableView na nim setModel z QSqlTableModel i już możesz edytować tabelę.
Wywal wszystko z main i przenieś to do jakiejś klasy dziedziczącej po QObject

http://doc.qt.io/qt-5/qsqltablemodel.html#details

1 użytkowników online, w tym zalogowanych: 0, gości: 1