Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / проблема с SqlDataReader / 1 сообщений из 1, страница 1 из 1
15.04.2010, 11:39
    #36580083
cyssima
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
проблема с SqlDataReader
Проблема примерно такая.

В программе есть много запросов к базе и только один из них работает как-то не правильно, а именно: после ExecuteReader в SqlDataReader почемуто нет строк, хотя если запрос SQLCommand выполнять руками или сотреть в DBProfiler, то возвращается целых 2 строки.

Вот и не понятно, что это значит:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["conn"].ConnectionString))
            {
                conn.Open();
                SqlCommand cmd = new SqlCommand()
                {
                    CommandText = string.Format(
                    "SELECT * FROM " +
                        "(SELECT I.col1, Count(*) as [Count] " +
                        "FROM I " +
                            "INNER JOIN ITS ON ITS.col1 = I.col1 " +
                            "INNER JOIN IT ON IT.col2=ITS.col2 " +
                        "WHERE IT.col3 IN ('{0}') " +
                            "AND I.col4 = (SELECT col4 FROM E WHERE col5 = '{1}') " +
                        "GROUP BY col1 " +
                        "HAVING Count(*) > 0) T " +
                    "ORDER BY T.[Count] DESC", string.Join("', '", t), guid),
                    Connection = conn
                };
                using (SqlDataReader reader = cmd.ExecuteReader())
                {
                    if (reader != null)
                    {
                        int curCount = -1;
                        while (reader.Read()) ------- Вот в WHILE уже не заходит, но если запрос руками выполнять, то результат есть. В DB Profiler также результат есть.
                        {
                            if (curCount <= int.Parse(reader["Count"].ToString()))
                            {
                                candidateList.Add(new MlgImage()
                                {
                                     ..........................
                                });
                                curCount = int.Parse(reader["Count"].ToString());
                            }
                            else break;
                        }
                        reader.Close();
                    }
                }
            }

В чем может быть косяк? Кто-нить с таким сталкивался?
...
Рейтинг: 0 / 0
Форумы / ADO.NET, LINQ, Entity Framework, NHibernate, DAL, ORM [игнор отключен] [закрыт для гостей] / проблема с SqlDataReader / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]