簡體   English   中英

Qt-GUI數據庫編程

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM