2012-01-31 8 views
0

私は、このデータベース・テーブルは、どのように私は関係が同じであれば、得意先= 1とは、それはとてもから1データベースのレコードを数える方法は?

としてカウントされる人の数をカウントするつもりだ人々に

People 
peopleID peopleName relationship customerID 
1   A   aunty   1 
2   B   aunty   1 
3   C   second uncle 1 
4   D   aunty   2 

と呼ばれてい上記のデータベーステーブル、私は3の結果を取得し、3の結果をLabel1のLabel1に入れますか?

私が正しくあなたの質問を理解すると、

Protected Sub GridView2_RowDataBound(sender As Object, e As 
System.Web.UI.WebControls.GridViewRowEventArgs) Handles GridView2.RowDataBound 
     If e.Row.RowType = DataControlRowType.DataRow Then 
      'Do your processing here... 

      Dim txt As TextBox = DirectCast(e.Row.FindControl("Label1"), TextBox) 
      Dim adapter As New SqlDataAdapter 
      Dim ds As New DataSet 
      'Dim sql As String 

      Dim connectionString = ConfigurationManager.ConnectionStrings("ProjData").ConnectionString 
      Dim myConn As New SqlConnection(connectionString) 

      Dim cmd = "Select * From People Where customerID='" & Session("customerID") & "' " 

      ' Dim myCmd As New SqlCommand(cmd, myConn) 

      Try 
       myConn.Open() 
       Dim myCmd As New SqlCommand(cmd, myConn) 
       adapter.SelectCommand = myCmd 
       adapter.Fill(ds, "People") 
       adapter.Dispose() 
       myCmd.Dispose() 
       txt.Text = ds.Tables(0).Rows.Count 



      Catch ex As Exception 
       MsgBox("Can not open connection ! ") 
      End Try 
     End If 
    End Sub 

答えて

0

関係の一部ならば、私はどこ得意先= 1のみのカウント値を取得することができますが、私はカウントするつもりだ方法を見つけ出すことはできませんSQLステートメントを実行すると、必要な数だけカウントされます。

Select count(peopleID) 
From People 
Where customerID = 1 
Group by relationship, customerID 

この回答で問題が解決しない場合は、質問に追加情報を追加してください。

0

コードでは、すべての行をフェッチしてから数えます。また、サーバー上の行数をカウントするクエリを実行することもできます。これははるかに優れています!

string sql = "SELECT COUNT(*) FROM People Where customerID='" & Session("customerID") & "' " 
... 
int rowCount = myCmd.ExecuteScalar(); 

あなたが同じ関係で行数をカウントしたい場合は、して、グループを使用する必要があります。 (あなたはVBでそれを行う方法がわからない)あなたが使用して声明の中で、あなたのSqlConnectionオブジェクトをラップする必要があり

string sql = 'SELECT COUNT(peopleId) FROM People Where customerID='" & Session("customerID") & "' "GROUP BY relationship, customerId" 
+0

なぜ関係でグループ化しますか? –

1

あなたはあなたにSQLを変更する必要があります。あなたの例では、接続を閉じることはありません。usingステートメントは自動的にこれを行います(代わりに、finallyブロック内の接続を閉じることです)

関連する問題