sql >> Database >  >> RDS >> Sqlserver

ArrayList invullen uit de resultatenset van de opgeslagen procedure

Wat u moet doen, is ExecuteReader() . aanroepen op die cmd object, zoals zo:

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);
            }
        }
    }
}

Dit veronderstelt dat de SQL een tabel retourneert waarvan de eerste kolom (geïdentificeerd door de index 0 naar de methode GetInt32() ) is de ID die u zoekt. Als de SQL de ID's in een andere kolom retourneert, past u de index aan op de kolom waarin u ze verwacht te vinden.

Deze oplossing verwacht ook dat de verbinding van de opdracht al open is. Als dit niet het geval is, kunt u cmd.Connection.Open() . doen net voor cmd.ExecuteReader() .



  1. Tomcat JDBC Conencton Pool + MySQL geeft Broken pipe-problemen, zelfs met verbindingsvalidatie

  2. psql:kan geen verbinding maken met server:verbinding geweigerd Fout bij verbinding met externe database

  3. postgresql - tel (geen null-waarden) van elke kolom in een tabel

  4. PostgreSQL-fout 'Kan geen verbinding maken met server:bestand of map niet'