帮我解决这个问题

时间:2011-02-15 09:15:31

标签: c# asp.net sql-server-2005

我有一张存储拍卖信息的表格。字段为AuctionID, Location, StartDateTime, EndDateTime, Status等。

我需要一个查询来显示整周(不包括周末)的拍卖,如图所示。我正在使用VS 2008 gridview并从SQL Server 2005获取数据。

Software Genius Inc.

网格按列位置显示特定日期的拍卖。对于前者2月14日星期一,11,112,11,14,15次拍卖有5次不同的拍卖。

任何人都可以解决我的问题。

感谢您分享您的时间。

2 个答案:

答案 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。