あなたがすべきことは、 ExecuteReader() を呼び出すことです その cmd で オブジェクト、次のように:
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);
}
}
}
}
これは、SQL が最初の列 (インデックス 0 で識別される) を持つテーブルを返すことを前提としています。 メソッド GetInt32() に ) が探している ID になります。 SQL が別の列に ID を返す場合は、ID が見つかると予想される列にインデックスを調整するだけです。
このソリューションでは、コマンドの接続が既に開いていることも想定しています。そうでない場合は、 cmd.Connection.Open() を実行できます cmd.ExecuteReader() の直前 .