我有一张存储拍卖信息的表格。字段为AuctionID, Location, StartDateTime, EndDateTime, Status
等。
我需要一个查询来显示整周(不包括周末)的拍卖,如图所示。我正在使用VS 2008 gridview并从SQL Server 2005获取数据。
网格按列位置显示特定日期的拍卖。对于前者2月14日星期一,11,112,11,14,15次拍卖有5次不同的拍卖。
任何人都可以解决我的问题。
感谢您分享您的时间。
答案 0 :(得分:1)
您可以创建一个包含5个公共属性的类,一个用于一周中的evey日,并使用简单查询加载该类的列表。
如果您真的想要查询,可以在select子句
中使用开关答案 1 :(得分:1)
按照@Karel的建议创建一个Auction类。 E.g。
public class Auction{
public int ID{get;set;}
public DateTime StartDate{get;set;}
public DateTime EndDate{get;set;}
public string Location{get;set}
//Add other member variables for all Auction columns.
}
然后编写一些代码来填充数据库中与时间范围匹配的类集合。
因此,在SQL中,您需要执行类似以下操作的查询或存储过程:
SELECT * FROM Auction WHERE (StartDateTime > @StartDate AND EndDateTime < @EndDate) --As appropriate for your RDBMS.
`/*Get Data into an SQLDataReader (for speed) or DataTable/Set if you prefer*/`
List<Auction> myAuctions = new List<Auction>();
while (rdr.Read()){
Auction auc = new Auction();
auc.AuctionId = (int)rdr["AuctionId"];
//set all properties.
myAuctions.Add(auc);
}
在您的代码中,您需要按StartDate对List进行排序(使用`List.OrderBy(...)'),然后绑定到控件。
HTH。