Pergunta : O objeto de Datareader é já mensagem aberta

Olá!,

I am que tenta conseguir o seguinte código trabalhar.  Um dos argumentos é um objeto da lista.  Eu estou tentando dar laços através dos objetos no lstTechCode e retornar um objeto da lista.  Quando eu funciono o código mim começ uma mensagem de erro que um objeto do datareader está já aberto.  
class= > " desobstruído " do
> do " codeSnippet " do class= do
class= " lineNumbers " do
class= do
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:
função compartilhada >Public notpretty GetDatasetList " do class= " do id= " codeSnippet853502 do
           
class= do

Resposta : O objeto de Datareader é já mensagem aberta

a tentativa que gosta deste… deve trabalhar, mas não tentado porque eu não tenho o 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:
Função compartilhada público GetDatasetList (strMetricName de ByVal como o strInputCode da corda, do ByVal como o lstTechCode como a lista (de TechnologySet), ByVal da corda, do ByVal intSelectedYear como o inteiro) como a lista (de DataSetClass)
        Datasetlist não ofuscante como a lista nova (de DataSetClass)
        CnSql não ofuscante como SqlConnection = BadsDB.GetConnection
        cmdA não ofuscante como SqlCommand
        Leitor não ofuscante como SqlDataReader = nada
        cmdA = SqlClient.SqlCommand novo (“up_GetGraphReportDataset”, CnSql)
        cmdA.CommandTimeout = 7200
        Tentativa
            Para cada t como TechnologySet no lstTechCode
                Com cmdA
                    .CommandType = CommandType.StoredProcedure
                    . Parameters.AddWithValue (“@MetricName”, strMetricName.ToString)
                    . Parameters.AddWithValue (“@InputCode”, strInputCode.ToString)
                    . Parameters.AddWithValue (“@TechnologySetCode”, t.TechnologySetCode.ToString)
                    . Parameters.AddWithValue (“@BudgetYear”, intSelectedYear)
                Extremidade com
                Se CnSql.State = ConnectionState.Closed então
                    CnSql.Open ()
                Terminar se
                leitor = cmdA.ExecuteReader (CommandBehavior.CloseConnection)
                DataVersionIdOrd não ofuscante como o inteiro = o reader.GetOrdinal (“DataVersionId”)
                Dsc não ofuscante como DataSetClass
                Fazer quando leitor. Ler
                    dsc = DataSetClass novo
                    dsc.DataVersionId = reader.GetString (DataVersionIdOrd)
                    datasetlist. Adicionar (dsc)
                Laço
            leitor. Fechar ()
            cmdA.Parameters.Clear ()
            Em seguida


        excA do prendedor como SqlException
            MsgBox (excA.Message, excA.GetType.ToString)
        Finalmente
            CnSql.Close ()
        Tentativa do fim
        Datasetlist do retorno
    Função do fim
Outras soluções  
 
programming4us programming4us