2011-01-12 7 views
35

のC#(.csファイルファイル)で最も簡単な方法は何ですかint変数にSQLコマンドSQLクエリ

SELECT COUNT(*) FROM table_name 

からのカウントを取得するから、カウントをキャプチャ?

+0

この質問は爆発しています。 38379ビュー! – Dinuka

答えて

71

使用SqlCommand.ExecuteScalar()intにキャスト:

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

この例では、これもかなりカバーしています。 'INSERT INTO'をあなたの' SELECT'ステートメントに変更してください。 –

+0

この場合、常にint型の戻り値があります。より一般的なケースでは、DBNullの戻り値を得ることができます。 "table1からcompany_id = '112233'"のssnを選択します。 DBNullを返すデータ型にキャストすることはできないので、SQLまたはアプリでテストして変更します。 – SeaDrive

+0

あなたはCount()から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

これは私の答えと同じではありませんか? –

+1

わかりやすくするために、接続文字列は通常、接続先のデータベースに関する情報を含む文字列です。例: "Server = myServerAddress; Database = myDataBase; Trusted_Connection = True;"これにより、コンピュータで実行しているのと同じ資格情報を使用してデータベースにログオンします。 – erikric

8

youllは代わりに

 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

私は質問があります...テキストボックスを使用して文字列上のどこに行きたいのですか? 例: - 文字列stm = "SELECT COUNT(*)FROM table_name WHERE name =" + Name.Text .Trim()+ "; " ; –

1

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

使用SQLとC#で補完するとエラーに変換し得ます:

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