[英]Qt - GUI Database programming
我正在使用Qt GUI使用C ++在MySQL中保存數據。
我為此使用QDateTimeEdit
小部件。 無論用戶在QDateTimeEdit
GUI中更改了什么值,都應將其插入MySQL。
誰能告訴我該怎么做?
如何從QDateTimeEdit
訪問值並將其轉換為QString
之類的正確格式,並使用MySQL查詢將其插入數據庫中?
另一種選擇是不將其轉換為QString,而是讓驅動程序為您完成。 如果您期望轉換的精度,某些情況可能會更好,而其他情況可能會更糟:
QDateTime date = ui->dateTimeEdit->dateTime();
QSqlQuery query(myDatabase);
query.prepare("INSERT INTO my_table (id, date) "
" VALUES (:id, :date)");
query.bindValue(":id", 1001);
query.bindValue(":date", date);
query.exec();
QSqlQuery :: bindValue()函數將使用QDateTime並將其作為QVariant
傳遞,然后驅動程序應該知道如何將QVariant :: DateTime轉換為數據庫可以理解的正確字符串。
關於第二部分“如何獲取價值”:
您以某種方式在代碼中創建了QDateTimeEdit對象,並將其放置在某些布局上。 通常,它將是帶有名稱的指針,例如mpDTPicker。
QDateTimeEdit * mpDTPicker = new QDateTimeEdit();
//place mpDTPicker on layout.
要訪問當前時間,我們需要使用dateTime方法:
//User actions with date -> emitted signal -> execute slot with our logic
{
QDateTime momentum = mpDTPicker->dateTime();
// So here we need convert QDateTime to QString and we will use [toString Method](http://doc.qt.io/qt-4.8/qdatetime.html#toString)
QString result_string = momentum.toString("dd:mm:yy");
QDebug() << result_string;
}
這就是將QDateTime轉換為QString的全部。 關於Question的第一部分,如何獲得該用戶更改的DateTimeEdit的值是另一個問題。
關於第三部分如何將其存儲在mysql數據庫中,一切都取決於表的結構。 但是通常可以通過簡單的查詢來解決:
QSqlQuery query;
QString mQuerry = "INSERT INTO mytable (id, date) VALUES (0, \"" +result_string "\" )";
query.exec(mQuerry);
而且,當它們很酷時,請仔細閱讀DOCS :)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.