Question : L'objet de Datareader est déjà message ouvert

Bonjour,

I AM essayant d'obtenir le code suivant pour travailler.  Un des arguments est un objet de liste.  J'essaye de faire une boucle par les objets dans le lstTechCode et de renvoyer un objet de liste.  Quand je cours le code je recevoir un message d'erreur qu'un objet de datareader est déjà ouvert.  
class= > " clair " de
> de " codeSnippet " de class= de
class= " lineNumbers " de
class= de
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 :
fonction partagée >Public " de l'id= " codeSnippet853502 de
           
class= de

Réponse : L'objet de Datareader est déjà message ouvert

l'essai qu'il aiment ceci… devrait fonctionner, mais non essayé parce que je n'ai pas le 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 :
Fonction partagée par public GetDatasetList (strMetricName de ByVal comme strInputCode de corde, de ByVal comme lstTechCode de corde, de ByVal comme liste (de TechnologySet), ByVal intSelectedYear comme nombre entier) comme liste (de DataSetClass)
        Faible datasetlist en tant que nouvelle liste (de DataSetClass)
        Faible CnSql comme SqlConnection = BadsDB.GetConnection
        Faible cmdA comme SqlCommand
        Faible lecteur comme SqlDataReader = rien
        cmdA = nouveau SqlClient.SqlCommand (« up_GetGraphReportDataset », CnSql)
        cmdA.CommandTimeout = 7200
        Essai
            Pour chaque t comme TechnologySet dans le lstTechCode
                Avec le cmdA
                    .CommandType = CommandType.StoredProcedure
                    . Parameters.AddWithValue (« @MetricName », strMetricName.ToString)
                    . Parameters.AddWithValue (« @InputCode », strInputCode.ToString)
                    . Parameters.AddWithValue (« @TechnologySetCode », t.TechnologySetCode.ToString)
                    . Parameters.AddWithValue (« @BudgetYear », intSelectedYear)
                Extrémité avec
                Si CnSql.State = puis ConnectionState.Closed
                    CnSql.Open ()
                Finir si
                lecteur = cmdA.ExecuteReader (CommandBehavior.CloseConnection)
                Faible DataVersionIdOrd comme nombre entier = reader.GetOrdinal (« DataVersionId »)
                Faible dsc comme DataSetClass
                Faire tandis que lecteur. Lire
                    dsc = nouveau DataSetClass
                    dsc.DataVersionId = reader.GetString (DataVersionIdOrd)
                    datasetlist. Ajouter (dsc)
                Boucle
            lecteur. Se fermer ()
            cmdA.Parameters.Clear ()
            Après


        excA de crochet comme SqlException
            MsgBox (excA.Message, excA.GetType.ToString)
        Enfin
            CnSql.Close ()
        Essai de fin
        Datasetlist de retour
    Fonction de fin
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us