2013-08-23 102 views
-6

我試圖從訂單表中顯示最近的「oders」。但即使我在表格中有一些訂單,我也會收到消息「沒有訂單」。代碼有什麼問題?函數不起作用

public static List<OrderInfo> GetOrdersByRecent (int count) 
{ 
    DbCommand comm = GenericDataAccess.CreateCommand(); 
    comm.CommandText = "OrdersGetByRecent"; 
    DbParameter param = comm.CreateParameter(); 
    param.ParameterName = "@Count"; 
    param.Value = count; 
    param.DbType = DbType.Int32; 
    comm.Parameters.Add (param); 
    return ConvertDataTableToOrders (GenericDataAccess.ExecuteSelectCommand (comm)); 
} 

protected void byRecentGo_Click(object sender, EventArgs e) 
{ 
    try 
    { 
     int recordCount = Int32.Parse(recentCountTextBox.Text); 
     List<OrderInfo> orders = CommerceLibAccess.GetOrdersByRecent(recordCount); 
     grid.DataSource = orders; 
     if (orders.Count == 0) 
     { 
      errorLabel.Text = "<br />No orders to get."; 
     } 
    } 
    catch 
    { 
     errorLabel.Text = "<br />Couldn't get the requested orders!"; 
    } 
    finally 
    { 
     grid.DataBind(); 
    } 
} 
+2

你的問題非常含糊。你有沒有嘗試過調試代碼? – PoweredByOrange

+2

-1:你必須調試自己 - 這個問題很可能會被關閉,除非你提供了一個顯示問題的小樣本(不是對隨機私有函數的調用)。 –

+4

'CommerceLibAccess.GetOrdersByRecent(recordCount)'不返回任何項目。而已。除此之外,我們無法告訴您,因爲我們不知道該功能如何工作,或者數據庫的外觀如何。在該行上放置一個斷點並自行完成代碼。 – gunr2171

回答

1

你得到零個訂單,因爲

List<OrderInfo> orders = CommerceLibAccess.GetOrdersByRecent(recordCount); 

正在返回一個空的列表。

return ConvertDataTableToOrders (GenericDataAccess.ExecuteSelectCommand (comm)); 

將返回一個空的數據表:


這是因爲返回一個空列表。

你必須挖掘你的數據表來找出它爲什麼認爲它是空的。
(也許是因爲它實際上是空的??)

+0

沒有冒犯,但這只是說什麼對OP說的評論。除了「調試它」和「它不返回行」之外,我們沒有太多的可以告訴他。 – gunr2171

+0

是的。 sql JOIN查詢中有一個錯誤。 – ayha

-1

表字段 「訂單ID」 和訂單ID的訂單信息屬性必須是同一

class OrderInfo 
{ 

int OrderID; 

} 

入住此...

+0

我很困惑你的意思。這個屬性在哪裏?這完成了什麼? – gunr2171

+0

好的,你有一個類OrderInfo.Tell我它包含的數據成員 – Ahsank7