2017-07-06 22 views
1

私はaspxページでgridviewを持っています。私はユニット単位でフィルタリングしています(例:ユニット1、ユニット2など)。ページを開いたときにデフォルトで私は自分のデータベース内のレコードの合計数を取得する:レコードの総数からレコードのユニット数を取得する方法

protected void sdsTACStudents_Selected(object sender, SqlDataSourceStatusEventArgs e) 
     { 
      if (txtSearchByName.Text == "") 
      { 
       int rowCount = e.AffectedRows; 
       txtRecordCount.Text = rowCount.ToString(); 
      } 
     } 
But if ddlSearchBy.Text == "Last Name, "First Name" or "ssn", I need to display the current units count: 
protected void sdsTACStudents_Selected(object sender, SqlDataSourceStatusEventArgs e) 
     { 
      if (txtSearchByName.Text == "") 
      { 
       int rowCount = e.AffectedRows; 
       txtRecordCount.Text = rowCount.ToString(); 
      } 
      else if ((ddlSearchBy.Text == "Last Name") || (ddlSearchBy.Text == "First Name") || (ddlSearchBy.Text == "SSN")) 
      { 
       display the current unit count which is less than the total count of all units. 
      } 
     } 

私は単位の人々の数を取得するには、ストアドプロシージャを使用する必要がありますか?

答えて

0

あなたの質問に対する答えははいです。これらのパラメータ(姓、名またはSSN)のいずれかをとり、条件に一致する行数を返すストアドプロシージャまたはパラメータ化されたクエリが必要です。

一つの例は次のようになります。

SELECT COUNT(*) as NUM_RECORDS FROM YOUR_TABLE 
WHERE FirstName LIKE '%'[email protected]+'%'; -- assuming you only want to do partial matching 

それはあなたがストアドプロシージャを作成するか、または単にパラメータ化クエリを作成するかどうかはあなた次第ですが、これは一般的な考え方です。

関連する問題