2011-01-12 69 views
35

什麼是C#(cs文件)最簡單的方式來獲得SQL命令捕獲數從SQL查詢

SELECT COUNT(*) FROM table_name 

計數爲int變量?

+0

這個問題是吹起來! 38379意見! – Dinuka 2016-01-30 09:15:04

回答

71

使用SqlCommand.ExecuteScalar()和將其轉換爲int

cmd.CommandText = "SELECT COUNT(*) FROM table_name"; 
Int32 count = (Int32) cmd.ExecuteScalar(); 
+0

是的,在那裏幾乎涵蓋這個爲好,只是改變了`INSERT INTO`的例子是你`SELECT`聲明.. – 2011-01-12 12:47:59

+0

在這種情況下,總會有一個int類型的返回值。在更一般的情況下,你可能會得到一個DBNull的返回值,例如「從table1中選擇ssn,其中company_id ='112233'」。由於您無法將DBNull轉換爲您的返回數據類型,因此您可以在SQL中或在您的應用程序中進行測試並對其進行更改。 – SeaDrive 2011-01-17 21:50:54

+0

你永遠不會擺脫伯爵()一個的DBNull http://msdn.microsoft.com/en-us/library/ms175997.aspx – 2011-01-17 22:01:42

15
SqlConnection conn = new SqlConnection("ConnectionString"); 
conn.Open(); 
SqlCommand comm = new SqlCommand("SELECT COUNT(*) FROM table_name", conn); 
Int32 count = (Int32) comm .ExecuteScalar(); 
8

你會得到錯誤轉化與

cmd.CommandText = "SELECT COUNT(*) FROM table_name"; 
Int32 count = (Int32) cmd.ExecuteScalar(); 

改用

 string stm = "SELECT COUNT(*) FROM table_name WHERE id="+id+";" ; 
     MySqlCommand cmd = new MySqlCommand(stm, conn); 
     Int32 count = Convert.ToInt32(cmd.ExecuteScalar()); 
     if(count > 0){ 
      found = true ; 
     } else { 
      found = false ; 
     } 
1

在C#中補充與SQL:

SqlConnection conn = new SqlConnection("ConnectionString"); 
     conn.Open(); 
     SqlCommand comm = new SqlCommand("SELECT COUNT(*) FROM table_name", conn); 
     Int32 count = Convert.ToInt32(comm.ExecuteScalar()); 
     if (count > 0) 
     { 
      lblCount.Text = Convert.ToString(count.ToString()); //For example a Label 
     } 
     else 
     { 
      lblCount.Text = "0"; 
     } 
     conn.Close(); //Remember close the connection