Der erste Schritt besteht darin, das entsprechende Datenbankmodul (sql) zur Projektdatei ( .pro ) hinzuzufügen und mehrere Klassen (auch die entsprechenden Headerdateien) einzuführen.
1. Datenbankverbindung //MySQL-Datenbank hinzufügen QSqlDatabase db=QSqlDatabase::addDatabase("QMYSQL"); //Verbindung zur Datenbank herstellen db.setHostName("127.0.0.1"); //IP des Datenbankservers db.setUserName("root"); //Datenbank-Benutzername db.setPassword("root"); //Datenbank-Benutzername und -Passwort db.setDatabaseName("sys"); //Datenbankname if(db.open()==false) { QMessageBox::information(this,"Öffnen der Datenbank fehlgeschlagen",db.lastError().text()); zurückkehren; } Wenn dies fehlschlägt, kann es sein, dass QT eine Bibliothek benötigt, um eine Verbindung zur MySQL-Datenbank herzustellen (laden Sie libmysql.dll selbst herunter) und legen Sie die Bibliotheksdatei im QT-Installationsverzeichnis D:\Qt\5.9\mingw53_32\bin ab (entsprechend Ihrem eigenen Verzeichnis). Meine QT-Version ist 5.9. Ist die Datenbank geöffnet? Liegt der Benutzer falsch? Existiert diese Datenbank? 2. Erstellen Sie eine Tabelle : QSqlQuery q; q.exec("Tabelle Student erstellen (ID int Primärschlüssel auto_increment, Name varchar(255), Alter int, Punktzahl int)ENGINE=INNODB;"); 3. Daten in die Tabelle einfügenMethode 1 (Einzelzeileneinlage) q.exec("insert into student(id, name, age,score) values(1, 'Name', 24,80);"); Methode 2 (mehrere Zeilen einfügen) ist in ODBC-Stil und Oracle-Stil unterteilt 1. ODBC-Stil q.prepare("insert into student(name, age,score) values(?, ?, ?)"); //? ist ein Platzhalter für den QVariantList-Namen; Name<<"Primzahl"<<"Warten"<<"An An"; QVariantList Alter; Alter<<-2<<12<<14; QVariantList-Punktzahl; Punktzahl<<0<<89<<90; // Binden Sie die entsprechenden Werte der Reihe nach an die Felder q.addBindValue(name); q.addBindValue(Alter); q.addBindValue(Punktzahl); //Vorverarbeitungsbefehle ausführen q.execBatch(); Um die Header-Datei #include<QVariantList> hinzuzufügen, sollten die Felder in der Reihenfolge gebunden werden 2.orace Stil d //Platzhalter: + benutzerdefinierter Name q.prepare("insert into student(name, age,score) values(:n, :a,:s)"); QVariantList-Name; Name <<"Quark" <<"Redmi" <<"Hongmeng"; QVariantList Alter; Alter<<5<<10<<3; QVariantList-Punktzahl; Punktzahl<<77<<89<<99; // Binden Sie die Felder in beliebiger Reihenfolge aufgrund von: + benutzerdefiniertem Namen q.bindValue(":n",name); q.bindValue(":s",Punktzahl); q.bindValue(":a",Alter); //Vorverarbeitungsbefehle ausführen q.execBatch(); Die Reihenfolge der Felder kann aufgrund der Platzhalterunterscheidung beliebig sein 3. Tabelle aktualisieren : QSqlQuery q; q.exec("aktualisiere den festgelegten Punktestand des Schülers = 76, wobei Name = 'Notenwert' ist"); 4. Löschen Sie die Tabelle : QSqlQuery q; q.exec("löschen von Student, bei dem Name='Student'"); 5. Durchqueren Sie den Tisch : QSqlQuery q; q.exec("Wählen Sie *aus dem Studenten aus"); while(q.next()) // false nach Durchlauf { //Mit Index //qDebug()<<q.value(0).toInt()<<q.value(1).toString()<<q.value(2).toInt() <<q.value(3).toInt(); //Mit Feld qDebug()<<q.value("id").toInt()<<q.value("name").toString()<<q.value("age").toInt() <<q.value("Punktzahl").toInt(); } Dies ist das Ende dieses Artikels über die Verbindung von QT mit einer MySQL-Datenbank. Weitere relevante Inhalte über die Verbindung von QT mit einer MySQL-Datenbank finden Sie in früheren Artikeln auf 123WORDPRESS.COM oder in den verwandten Artikeln weiter unten. Ich hoffe, dass jeder 123WORDPRESS.COM in Zukunft unterstützen wird! Das könnte Sie auch interessieren:
|
<<: Zusammenfassung der CSS-Farbverlaufseffekte (linearer Farbverlauf und radialer Farbverlauf)
>>: Erste Schritte Tutorial für Anfänger: Domänennamenauflösung und Bindung
Nehmen Sie als Beispiel drei aufeinanderfolgende ...
Ich werde nicht erklären, was CUDA ist, sondern d...
Einführung in MQTT MQTT (Message Queuing Telemetr...
„Cellspacing“ ist der Abstand zwischen den Zellen ...
Inhaltsverzeichnis Vorwort 1. Systemdienststeueru...
Der Code unter dem Easyui-Framework lautet wie fo...
Vorwort Manchmal habe ich das Gefühl, dass die na...
Ein Freund in der Gruppe hat zuvor eine Frage ges...
Viele Tabellen in MySQL enthalten Spalten, die NU...
Das Tutorial zur Installation von OpenStack Ussur...
Hallo zusammen, heute werde ich die Implementieru...
1. Mehrere Grenzen[1] Hintergrund: Box-Shadow, Um...
In diesem Artikel wird der spezifische Code von j...
Vorwort Es wird gesagt, dass sich die für Betrieb...
In diesem Artikel wird der spezifische Code von j...