In fact, we all know that QT5 above are brought with the database driver, so, basically can be directly used, so if you want to know how to connect the database, please refer to the great God wrote. http://qtdebug.com/DB-AccessMySQL.html
About database operations
Qsqldatabase db = Qsqldatabase::adddatabase ("Qmysql"); Blog for the use of MySQL
Db.sethostname ("127.0.0.1"); Native Address
Db.setdatabasename ("Qt"); I created a database called Qt in MySQL.
Db.setusername ("root"); Account
Db.setpassword ("59826****"); Password
if (!db.open ())
{
Qdebug () << "failed to open database";
}
Qdebug () << "connected successfully";
About the database displayed in the table
Qtableview *_view = new Qtableview;
Qsqltablemodel *_model = new Qsqltablemodel;
Qvboxlayout *lay = new Qvboxlayout (this);
_model->settable ("user"); Table names in the database
_model->selection (); Select all the data in the table
_view->setmodel (_model); Pass _model to _view.
Lay->addwidget (_view); Add a space to the qvboxlayout and show
Change and delete
void Slotaddclicked ()
{
_model->database (). transaction (); Start things
Qsqlrecord record = _model, record (); Use _model to get records (rows)
_model, Insertrecord ( -1,record); Add a record to the last row
}
void Slotsubmitclicked ()
{
if (_model->submitall ())
_model->database (). commit (); Submit
Else
{
_model->database (). rollback (); Rolling back
Qmessagebox::critical (This, "Error", Qsqldatabase (). Lasterror.text ());
}
}
void Slotdelclicked ()
{
Qitemselectionmodel * Selectmodel=view->selectionmodel (); Use view to get selected part of the data model
Qmodelindexlist selectindexlist = Selectmodel->selectedindexs (); To get the selected index by Selectmodel
Qlist<int> Delrow; Store the rows to be deleted
for (int i=0;i<selectindexlist.size (); ++i)//Traverse Selected list
{
Qmodelindex index = selectindexlist.at (i); Convert the list to a single index
Delrow << Index.row (); Add the row for index to Delrow
}
while (Delrow.size () >0)
{
int row = delrow.at (0);
Delrow.removeall (row); Remove all the same rows, go to the heavy
Model->removerow (row); Remove the row
}
Model->submitall ();
}
Continuous update, not to be continued
This article belongs to author original, if need reprint please specify http://i.cnblogs.com/EditPosts.aspx?opt=1
QT 5 database operation (MySQL)