2011-01-12 22 views
35

C# (.cs dosyası) en basit yolu nedir bir int değişkene SQL komutuSQL sorgusu

SELECT COUNT(*) FROM table_name 

gelen sayım sonucuna varmak için gelen sayımın yakalama?

+0

Bu soru patlıyor! 38379 görüntüleme! – Dinuka

cevap

71

Kullanım SqlCommand.ExecuteScalar() ve int için döküm:

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

Evet, buradaki örnek de bunu kapsar, sadece 'INSERT INTO' ifadesini 'SELECT' ifadeniz olarak değiştirin .. –

+0

Bu durumda, her zaman int türünde bir dönüş değeri olacaktır. Daha genel bir durumda, DBNull değerine sahip olabilirsiniz, ör. "ssn'yi tablo1'den company_id = '112233' 'olarak seçin. DBNull'u iade veri türüne çeviremediğinizden, SQL'de veya uygulamanızda test edin ve değiştirin. – SeaDrive

+0

Asla bir DBNULL() http://msdn.microsoft.com/en-us/library/ms175997.aspx –

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

Bu benim cevabımla aynı değil mi? –

+1

Sadece netlik sağlamak için, bir bağlantı dizgisi genellikle hangi veritabanına bağlandığınız hakkında bilgi içeren bir dizedir. Bir örnek: "Sunucu = myServerAddress; Veritabanı = myDataBase; Trusted_Connection = True;" Bu, veritabanında, bilgisayarınızda çalıştırdığınız kimlik bilgileriyle oturum açar. – erikric

8

Duyacaksınız yerine

 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 ; 
     } 
+0

Bir sorum var ... ya bir textbox kullanarak bir dizede nerede istersem: - string stm = "SELECT COUNT (*) from table_name WHERE name =" + Name.Text .Trim() + "; " ; –

1

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

kullanımı SQL ile C# tamamlamaktadır hataları dönüştürme alıyorum:

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