Вопрос : Предметом Datareader будет уже открытое сообщение

Здравствулте!,

I am пытаясь получить, что следующий Кодего работать.  Один из аргументов будет предметом списка.  Я пытаюсь закрепить петлеть через предметы в lstTechCode и возвратить предмет списка.  Когда я бегу Кодий я получите сообщение ошибки что предмет datareader уже открыт.  
class= " ясное " >
> " codeSnippet " class=
class= " lineNumbers "
class=
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:
функция GetDatasetList " class= " id= " codeSnippet853502
Public, котор делят (strMetricName ByVal как strInputCode шнура, ByVal как lstTechCode как список (TechnologySet), ByVal шнура, ByVal intSelectedYear как интежер) как список (DataSetClass)
        Тусклое datasetlist как новый список (DataSetClass)
        Тусклое CnSql как SqlConnection = BadsDB.GetConnection
        Тусклое cmdA как SqlCommand
        Тусклый читатель как SqlDataReader = ничего
        cmdA = новое SqlClient.SqlCommand («up_GetGraphReportDataset», CnSql)
        cmdA.CommandTimeout = 7200
        Попытка
            Для каждого t как TechnologySet в lstTechCode
                С cmdA
                    .CommandType = CommandType.StoredProcedure
                    . Parameters.AddWithValue («@MetricName», strMetricName.ToString)
                    . Parameters.AddWithValue («@InputCode», strInputCode.ToString)
                    . Parameters.AddWithValue («@TechnologySetCode», t.TechnologySetCode.ToString)
                    . Parameters.AddWithValue («@BudgetYear», intSelectedYear)
                Конец с
                Если CnSql.State = ConnectionState.Closed после этого
                    CnSql.Open ()
                Закончитесь если
                читатель = cmdA.ExecuteReader (CommandBehavior.CloseConnection)
                Тусклое DataVersionIdOrd как интежер = reader.GetOrdinal («DataVersionId»)
                Тусклое dsc как DataSetClass
                Сделайте пока читатель. Прочитайте
                    dsc = новое DataSetClass
                    dsc.DataVersionId = reader.GetString (DataVersionIdOrd)
                    datasetlist. Добавьте (dsc)
                Петля
            Затем

            читатель. Закройте ()
        Уловите excA как SqlException
            MsgBox (excA.Message, excA.GetType.ToString)
        Окончательно
            CnSql.Close ()
        Попытка конца
        Возвращенное datasetlist
    Функция конца
class=

Ответ : Предметом Datareader будет уже открытое сообщение

попытка, котор она любит это… должна работать, но судимо потому что я не имею storedprocedure etc.
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:
Функция делят публикой, котор GetDatasetList (strMetricName ByVal как strInputCode шнура, ByVal как lstTechCode как список (TechnologySet), ByVal шнура, ByVal intSelectedYear как интежер) как список (DataSetClass)
        Тусклое datasetlist как новый список (DataSetClass)
        Тусклое CnSql как SqlConnection = BadsDB.GetConnection
        Тусклое cmdA как SqlCommand
        Тусклый читатель как SqlDataReader = ничего
        cmdA = новое SqlClient.SqlCommand («up_GetGraphReportDataset», CnSql)
        cmdA.CommandTimeout = 7200
        Попытка
            Для каждого t как TechnologySet в lstTechCode
                С cmdA
                    .CommandType = CommandType.StoredProcedure
                    . Parameters.AddWithValue («@MetricName», strMetricName.ToString)
                    . Parameters.AddWithValue («@InputCode», strInputCode.ToString)
                    . Parameters.AddWithValue («@TechnologySetCode», t.TechnologySetCode.ToString)
                    . Parameters.AddWithValue («@BudgetYear», intSelectedYear)
                Конец с
                Если CnSql.State = ConnectionState.Closed после этого
                    CnSql.Open ()
                Закончитесь если
                читатель = cmdA.ExecuteReader (CommandBehavior.CloseConnection)
                Тусклое DataVersionIdOrd как интежер = reader.GetOrdinal («DataVersionId»)
                Тусклое dsc как DataSetClass
                Сделайте пока читатель. Прочитайте
                    dsc = новое DataSetClass
                    dsc.DataVersionId = reader.GetString (DataVersionIdOrd)
                    datasetlist. Добавьте (dsc)
                Петля
            читатель. Закройте ()
            cmdA.Parameters.Clear ()
            Затем


        excA задвижки как SqlException
            MsgBox (excA.Message, excA.GetType.ToString)
        Окончательно
            CnSql.Close ()
        Попытка конца
        Возвращенное datasetlist
    Функция конца
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us