2012-09-22 188 views
2
public void KT1_Sprint3_GetGroupList() 
    { 
     string Query = 
       "SELECT name,alias,emailAdd FROM dbo.UserAccountDetailsList ua 
       WITH (NOLOCK) INNER JOIN dbo.UserTestType ut WITH (NOLOCK) ON 
       ua.UserTestTypeId = ut.UserTestTypeID WHERE ut.Code in 
       ('Distribution','TestGroup') and ua.IsActive = 1"; 

     SQlOperation(Query); 

     ?????? 
    } 

我需要查詢的次數。我是否需要編寫另一個SQL查詢?我需要查詢的次數。我是否需要寫另一個SQL查詢

回答

3

您可以在查詢中使用count

select count(*) as row_count 
from your_table ua 
where ua.IsActive = 1 
1

你想返回的行數?當循環ResultSet時,您可以在代碼中增加一個計數器。

另一個查詢方法:

SELECT COUNT(*) FROM table AS ua WHERE ua.IsActive=1

+0

通過我得到3列的值第一次查詢,然後我需要的那個數。 SELECT名字,別名emailAdd \t FROM dbo.UserAccountDetailsList UA WITH(NOLOCK) \t INNER JOIN dbo.UserTestType UT WITH(NOLOCK)ON = ua.UserTestTypeId ut.UserTestTypeID WHERE ut.Code在( '配送','TestGroup ')和ua.IsActive = 1 – Santii20

+0

我在C#中執行單元測試方法,它執行SQl操作和檢查並聲明返回的行不應該爲0 – Santii20

+0

檢查您的單元測試框架是否有SQL幫助和用於檢查行的樣板方法計數等。我知道我的單元測試環境,在這裏有這個(我這裏的語言不是C#) –

0

該查詢會給你行數+所需的行。

SELECT ua.COL_NAME, 
(SELECT COUNT(*) FROM your_table) as count 
FROM your_table ua 
WHERE ua.IsActive = 1; 
0

你可以改變烏爾SQL語句如下:

SELECT Name, 
    (SELECT COUNT(*) FROM Table) AS count 
FROM Table WHERE Status='URGENT'; 

然後,你將有算過。但你爲什麼要這樣?

0

如果你將要執行的查詢您需要的計數之前,只是檢查在返回的DataTable中的行數。如果你想爲計數做一個單獨的查詢,那麼要做到這一點,而不必重複所有查詢的SQL邏輯將是一個辦法:

string CountQuery = @" 
    SELECT COUNT(*) 
    FROM 
    (
     {0} 
    ) x 
".Format(Query); 
0

既然你封裝實際的SQL調用。

SQlOperation(Query); 

我們無法確切地說出您使用的是什麼。

如果您使用的數據表,它在

dt.rows.count(); 

如果您正在使用DataReader,你自己算吧,當你遍歷記錄。

我假設你的意圖不是爲了用於計數單獨調用。