2011-01-12 37 views

Trả lời

71

Sử dụng SqlCommand.ExecuteScalar() và đúc nó vào một int:

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

yep, ví dụ trong đó khá nhiều bao gồm điều này là tốt, chỉ cần thay đổi 'INSERT INTO' thành câu lệnh' SELECT' của bạn .. –

+0

Trong trường hợp này, sẽ luôn có một giá trị trả về kiểu int. Trong trường hợp tổng quát hơn, bạn có thể nhận được giá trị trả về của DBNull, ví dụ: "chọn ssn từ table1 trong đó company_id = '112233'". Vì bạn không thể truyền DBNull vào kiểu dữ liệu trả về của mình, bạn đã kiểm tra và thay đổi nó, trong SQL hoặc trong ứng dụng của bạn. – SeaDrive

+0

Bạn sẽ không bao giờ nhận được một DBNULL từ Count() 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

Điều này không giống với câu trả lời của tôi? –

+1

Chỉ cần cho rõ ràng, một chuỗi kết nối thường là một chuỗi với thông tin về cơ sở dữ liệu bạn đang kết nối đến. Một ví dụ: "Server = myServerAddress; Cơ sở dữ liệu = myDataBase; Trusted_Connection = True;" Thao tác này sẽ đăng nhập bạn vào cơ sở dữ liệu với cùng thông tin đăng nhập bạn đang chạy trên máy tính của mình. – erikric

8

Youll được chuyển đổi lỗi với

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

sử dụng thay vì

 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

Tôi có một câu hỏi ... nếu tôi muốn ở đâu trên một chuỗi bằng cách sử dụng một hộp văn bản ví dụ: - string stm = "SELECT COUNT (*) FROM table_name WHERE name =" + Name.Text .Trim() + "; " ; –

1

Bổ sung trong C# với 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 
Các vấn đề liên quan