あなたがすべきことは、 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()
の直前 .