Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Remplir ArrayList à partir du jeu de résultats de la procédure stockée

Ce que vous devez faire est d'invoquer ExecuteReader() sur ce cmd objet, comme ceci :

public static IEnumerable<int> GetAllVendors()
{
    using (var cmd = Data.GetCommand(Configuration.DatabaseOwnerPrefix + ".GetAllInformationAndHelpVendorIds", Connections.MyDbConnection))
    {
        using (var reader = cmd.ExecuteReader())
        {
            while (reader.Read())
            {
                yield return reader.GetInt32(0);
            }
        }
    }
}

Cela suppose que le SQL retourne une table dont la première colonne (identifiée par l'indice 0 à la méthode GetInt32() ) sera l'ID que vous recherchez. Si le SQL renvoie les ID dans une autre colonne, ajustez simplement l'index à la colonne dans laquelle vous vous attendez à les trouver.

Cette solution s'attend également à ce que la connexion de la commande soit déjà ouverte. Si ce n'est pas le cas, vous pouvez faire cmd.Connection.Open() juste avant cmd.ExecuteReader() .