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

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


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