2014-12-04 86 views
1

我設計了一個簡單的GUI來檢查數據庫連接。數據庫連接參數(例如數據庫名稱,主機名稱,用戶名,密碼,端口等)將從GUI中輸入,根據連接情況,輸出將爲紅色或綠色圖像。將linedit()的字符串輸入轉換爲int以用作整數變量

我已經設置Oracle OCI插件(DB是Oracle 10g中)

,並做了following--

void MainWindow::on_GoButton_clicked() 
{ 
    QString HostN = ui->HostNameEdit->text(); 
    QString DatabaseN = ui->DatabaseNameEdit->text(); 
    QString UserN = ui->UserNameEdit->text(); 
    QString PassWD = ui->PasswordEdit->text(); 
    QString PortNO = ui->PortEdit->text(); 

QSqlDatabase db = QSqlDatabase::addDatabase("QOCI"); 

db.setHostName(HostN); 
db.setDatabaseName(DatabaseN); 
db.setUserName(UserN); 
db.setPassword(PassWD); 
db.setPort(PortNO); 

while(true) 
{ 
    if (db.open()) 
    { 
     // do this 
    } 
    else 
    { 
     //do that 
    } 
} 

}

現在它顯示error-- /家/ aj/MY_QT_WORK/DB_connection_test/mainwindow.cpp:19:錯誤:沒有匹配函數調用'QSqlDatabase :: setPort(QString &)'

任何想法?

回答

4

你可以寫爲:

db.setPort(PortNO.toInt()); 

但是你必須確保PORTNO字符串是真的轉換爲一個整數值太大的正確性。因此,您可以使用表示成功轉換的標誌:

bool ok; 
int portNumber = PortNO.toInt(&ok); 

if (!ok) { 
    qDebug() << "The port number is incorrect"; 
    // return? 
}