2012-09-22 36 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,你自己算吧,当你遍历记录。

我假设你的意图不是为了用于计数单独调用。