sql >> Databasteknik >  >> RDS >> Sqlserver

Fyll i ArrayList från resultatuppsättningen lagrad procedur

Vad du bör göra är att anropa ExecuteReader() på den cmd objekt, som så:

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

Detta förutsätter att SQL returnerar en tabell vars första kolumn (identifierad av indexet 0 till metoden GetInt32() ) kommer att vara det ID du letar efter. Om SQL returnerar ID:n i en annan kolumn, justera bara indexet till den kolumn du förväntar dig att hitta dem i.

Denna lösning förväntar sig också att kommandots anslutning redan är öppen. Om det inte är det kan du göra cmd.Connection.Open() strax före cmd.ExecuteReader() .



  1. mysql escapende enkla och dubbla citattecken

  2. PostgreSQL datum och tid funktioner

  3. Hur låses innodb-tabeller när ON INSERT-utlösaren bearbetas?

  4. MySQL INSERT - Kräver fältnamn avgränsning av backtick/accent?