2013-10-05 62 views
1

經過不眠之夜並運行了stackoverflow後,我找不到可以解決我的問題的方法(函數)。如何獲取mysql表中的行數

我寫的對服務器來說非常困難。有沒有更聰明的方法來解決這個問題?

這裏我的代碼:

public static int GetIndexLong(string TblName) 
{ 
    int rowsNbr = 0; 
    using(MySqlConnection conn = new MySqlConnection(PublicVariables.cs)) 
    { 
     using(MySqlCommand cmd = new MySqlCommand("SELECT * FROM " + TblName, conn)) 
     { 
      conn.Open(); 
      using (MySqlDataReader reader = cmd.ExecuteReader()) 
      { 
       while (reader.Read()) 
       { 
        ++rowsNbr; 
       } 
      } 
      return rowsNbr; 
     } 
    } 
} 

它的工作,但我知道這不是好辦法。

在.NET 4.0上使用C#Express 2008。

+3

'SELECT COUNT(*)FROM TableName' – Hammerite

回答

3

你是否在尋找數:

SELECT COUNT(*) FROM TableName 

在你的代碼,它會像:

using(MySqlCommand cmd = new MySqlCommand("SELECT COUNT(*) FROM " + TblName, conn)) 

,或者如果你想返回的行數可能會可能會嘗試這也太 -

using (MySqlCommand cmd = new MySqlCommand("SELECT COUNT(*) FROM " + TblName, conn)) 
{ 
    conn.Open(); 
    return Convert.ToInt32(cmd.ExecuteScalar()); 
} 
+0

當我這樣做時,我不會如何檢索行號。 –

+0

沒有正確地得到你的問題,但這是你想要的? com.CommandText =「select @@ ROWCOUNT」; var totalRow = com.ExecuteScalar(); –

+0

@IsmailGunes: - 更新了我的答案!這有幫助嗎? –

2

用於作業的正確查詢:

SELECT count(*) FROM + TblName 

(不過這真的無關用C#。)

的C#代碼替換你的情況應該是:

using(MySqlCommand cmd = new MySqlCommand("SELECT COUNT(*) FROM " + TblName, conn)) 
{ 
    conn.Open(); 
    return int.Parse(cmd.ExecuteScalar().ToString()); 
} 
+0

謝謝你的工作。 。但是,我用你的方式找到的解決方案(executablecalar)不起作用。你的工作完美。順便說一下,我試過SELECT count(*),但我不知道如何檢索它是對你的評論的回答。 –

+0

@IsmailGunes:隨時接受答案。 –

相關問題