Il y a déjà un DataReader ouvert associé à cette Commande, qui doit d'abord être fermés

C'est le code que j'ai.

///<summary>
///Method calls stored procedure and fills DataSet of contacts associated with Lead
///</summary>
///<param name="leadID">The ID associated with a Lead</param>
///<returns>contacts list as DataSet</returns>
public static DataSet GetContactResultSetByLead(int leadID)
{
    SqlCommand Sqlmd = new SqlCommand("dbo.proc_contact");
    Sqlmd.CommandType = CommandType.StoredProcedure;
    Sqlmd.Parameters.Add("@LeadInfoID", SqlDbType.Int).Value = leadID;

    Sqlmd.Connection = m_ConStr;
    SqlDataAdapter da = new SqlDataAdapter(Sqlmd);

    DataSet data = new DataSet();
    try
    {
        da.Fill(data);
    }

    finally
    {
        m_ConStr.Close();
    }

    return data;
}
Qu'est-ce que m_ConStr?
modifiez cette ligne Sqlmd.Les paramètres.Add("@LeadInfoID", SqlDbType.Int).Valeur = leadID; Sqlmd.Les paramètres.AddWithValue("@LeadInfoID", leadID); Si vous voulez garder le Mondial de vous Connecter, Vérifiez l'État de la Connexion s'ouvrir et de la fermer avant de l'utiliser. RESTRUCTURER LE CODE ET L'UTILISATION SIGNIFICATIVE DES NOMS DE VARIABLES....! Enveloppez votre Connexion autour d'une aide() {}
Sqlmd sera exécuté au cours de la da.Remplir appel. m_ConStr semble être un mal nommée variable, il semble faire référence à la connexion en elle-même, et non pas la chaîne de connexion.

OriginalL'auteur Marcus3329 | 2012-01-26