To demonstrate mysql connectivity with Qt ,Let us create a desktop application in qt creator that will add some record to mysql.Design your screen as follows
meanwhile on your database create a table as
CREATE TABLE QT_TEST
(
PName VARCHAR(200),
PCountry VARCHAR(100),
PAddress VARCHAR(500)
)
Lets comeback to our Qt App,In our QT App the Name control is of type lineEdit while Address control is of type TextEdit as it can be multiliner.
Here is main controls
1) txtlnName: Name of Person
2) txtteAddress: Address of Person
3) listWidget: Single select Drop down list
4) pbSubmit:submiting user input
5) pbReset: reset user screen
into Mainwindow.cpp add following header
#include <QtSql>
now on submit button's click slot, read user input like below
QString Name =ui->txtlnName->text();
QString Address =ui->txtteAddress->toPlainText();
//listbox
QListWidgetItem *sel_item = ui->listWidget->currentItem();
QString Country= sel_item->text();
Now call a function that will save user input to mysql
bool InsertRecord(QString Name,QString Country,QString Address)
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");//Driver
db.setHostName("localhost");//server
db.setPort(3306);//port
db.setDatabaseName("test");//database name
db.setUserName("root");//user name
db.setPassword("user_pwd");//password
bool ok = db.open();
QSqlQuery query;
if (ok){
query.prepare( "INSERT INTO QT_TEST (PName,PCountry,PAddress) VALUES ( :PName,:PCountry,:PAddress ) ");
query.bindValue( ":PName", Name);
query.bindValue( ":PCountry", Country);
query.bindValue( ":PAddress", Address);QT += sql
query.exec();
db.close();
return true;
}
return false;
}
Try Run your application and submit input.Now go to your mysql GUI or command prompt and run
SELECT * FROM QT_TEST
You will see your record has been inserted into table.
Note: If you got error about Qtsql header not found try adding
QT += sql
into project file yourprojectname.pro file.
meanwhile on your database create a table as
CREATE TABLE QT_TEST
(
PName VARCHAR(200),
PCountry VARCHAR(100),
PAddress VARCHAR(500)
)
Lets comeback to our Qt App,In our QT App the Name control is of type lineEdit while Address control is of type TextEdit as it can be multiliner.
Here is main controls
1) txtlnName: Name of Person
2) txtteAddress: Address of Person
3) listWidget: Single select Drop down list
4) pbSubmit:submiting user input
5) pbReset: reset user screen
into Mainwindow.cpp add following header
#include <QtSql>
now on submit button's click slot, read user input like below
QString Name =ui->txtlnName->text();
QString Address =ui->txtteAddress->toPlainText();
//listbox
QListWidgetItem *sel_item = ui->listWidget->currentItem();
QString Country= sel_item->text();
Now call a function that will save user input to mysql
bool InsertRecord(QString Name,QString Country,QString Address)
{
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");//Driver
db.setHostName("localhost");//server
db.setPort(3306);//port
db.setDatabaseName("test");//database name
db.setUserName("root");//user name
db.setPassword("user_pwd");//password
bool ok = db.open();
QSqlQuery query;
if (ok){
query.prepare( "INSERT INTO QT_TEST (PName,PCountry,PAddress) VALUES ( :PName,:PCountry,:PAddress ) ");
query.bindValue( ":PName", Name);
query.bindValue( ":PCountry", Country);
query.bindValue( ":PAddress", Address);QT += sql
query.exec();
db.close();
return true;
}
return false;
}
Try Run your application and submit input.Now go to your mysql GUI or command prompt and run
SELECT * FROM QT_TEST
You will see your record has been inserted into table.
Note: If you got error about Qtsql header not found try adding
QT += sql
into project file yourprojectname.pro file.
GitHub : https://github.com/gitsangramdesai/qt-mysql-demo
No comments:
Post a Comment