2011-11-08 58 views
-2

我想在一個table.how我可以acieve該行的總沒有...如何在qt中使用mysql的count函數?

我寫的代碼如下

QSqlDatabase DB = QSqlDatabase :: addDatabase( 「QMYSQL」);

db.setHostName("localhost"); 
db.setDatabaseName("Dictionary"); 
db.setUserName("root"); 
db.setPassword("cinesoft"); 
bool ok = db.open(); 

int ID; 
//SELECT COUNT(*) FROM icecream 
QString IDnosql="SELECT * FROM Dictionary.TABLE_ENGLISH"; 

if(ok) 
{ 
    QSqlQuery IDquery(db); 
    IDquery.prepare(IDnosql); 
    int Id=IDquery.numRowsAffected(); 
    IDquery.exec(); 

    // int Id=IDquery.numRowsAffected(); 
    QMessageBox::information(0,"sucess",QString::number(Id)); 

} 

我使用計數cammand.what我想獲得我的表中的行總數,並希望存儲到一個整數。

請幫我

迫切

回答

4

爲什麼你不使用查詢SELECT COUNT(*) from Dictionary.TABLE_ENGLISH - 這會給你表中的行數。然後從結果集中獲取該值並將其存儲在整型變量中。

0

要獲得一個表,你只需

SELECT count(*) from A; 

然後,你需要的結果轉換爲整數A行的總數。

6

您可以用COUNT命令準備一個QSqlQuery

QSqlQuery q; 
q.prepare(QString("SELECT COUNT (*) FROM %1").arg(tableName)); 
q.exec(); 
int rows= 0; 
if (q.next()) { 
     rows= q.value(0).toInt(); 
} 

檢查QSqlQuery更多細節

+0

非常感謝你的webclectic ....我懂了 –

1

當使用COUNT語句,你可以選擇當使用QSqlQuery ::值(INT指數),如單個值:

QString IDnosql="SELECT COUNT(*) FROM Dictionary.TABLE_ENGLISH"; 

if(ok) 
{ 
    QSqlQuery IDquery(db); 
    IDquery.prepare(IDnosql); 

    if(!IDquery.exec()) 
    { 
     // TODO: perform error handling here! 
    } 
    if(!IDquery.next()) 
    { 
     // TODO: Error handling: Query did not return a result (no row, which should not be possible when using a count statement as you would always get 1 row) 
    } 

    int Id = IDquery.value(0).toInt(); 

    QMessageBox::information(0,"sucess",QString::number(Id)); 

}