Những gì bạn nên làm là gọi ExecuteReader()
trên cmd
đó đối tượng, như vậy:
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);
}
}
}
}
Điều này giả định rằng SQL sẽ trả về một bảng có cột đầu tiên (được xác định bởi chỉ mục 0
tới phương thức GetInt32()
) sẽ là ID bạn đang tìm kiếm. Nếu SQL trả về các ID trong một cột khác, chỉ cần điều chỉnh chỉ mục cho cột mà bạn muốn tìm thấy chúng.
Giải pháp này cũng mong đợi kết nối của lệnh đã được mở. Nếu không, bạn có thể thực hiện cmd.Connection.Open()
ngay trước cmd.ExecuteReader()
.