0
我創建了一個簡單的ASP.NET WEB API(MVC 4)。但我不知道如何做大小和分頁。我的查詢下面返回了1000條記錄,加載一次需要時間。RESful ASP.NET WEB API分頁
對於我的控制器,這裏的源代碼:
public GRPORequestData[] getAllGRPO()
{
List<GRPORequestData> list = new List<GRPORequestData>();
try
{
string sqlSelect = "SELECT DocEntry, CardCode, Comments, DocDate, DocDueDate FROM OINV WHERE DataSource = 'O' ";
APPTech.strCommand = sqlSelect;
DataTable dt = new DataTable();
dt = APPTech.Ds.Tables[0];
foreach (DataRow row in dt.Rows)
{
// Person target = Activator.CreateInstance();
GRPORequestData target = new GRPORequestData();
target.docEntry = row["DocEntry"].ToString();
target.supplier = row["CardCode"].ToString();
target.docdate = row["DocDate"].ToString();
target.duedate = row["DocDueDate"].ToString();
target.remarks = row["Comments"].ToString();
// DataColumnAttribute.Bind(row,target);
sqlSelect = "SELECT ItemCode, Quantity, Price, WhsCode, TaxCode FROM INV1 WHERE DocEntry = '" + row["DocEntry"].ToString() + "' ";
APPTech.strCommand = sqlSelect;
List<RequestDataDetails> requestDetails = new List<RequestDataDetails>();
for (var i = 0; i < APPTech.Ds.Tables[0].Rows.Count; i++)
{
requestDetails.Add(new RequestDataDetails
{
itemCode = APPTech.GetDs(0, i).ToString(),
quantity = Convert.ToDecimal(APPTech.GetDs(1, i)),
price = Convert.ToDecimal(APPTech.GetDs(2, i)),
whscode = APPTech.GetDs(3, i).ToString(),
taxcode = APPTech.GetDs(4, i).ToString()
});
}
target.DocumentLines = requestDetails.ToArray();
list.Add(target);
}
return list.ToArray();
}
catch (Exception e)
{
e.ToString();
}
return list.ToArray();
}
而對於我的模型:
public class GRPORequestData
{
public string docEntry { get; set; }
public string supplier { get; set; }
public string docdate { get; set; }
public string duedate { get; set; }
public string remarks { get; set; }
//[DataMember]
//public int rowcount { get; set; }
public RequestDataDetails[] DocumentLines;
}
public class RequestDataDetails
{
public string itemCode { get; set; }
public decimal quantity { get; set; }
public decimal price { get; set; }
public string whscode { get; set; }
public string taxcode { get; set; }
}
執行'JOIN'並且只使用一個select語句而不是每行返回額外的n個查詢會不會更容易? – Marco
所以你的問題是如何做你的aspx頁面上的大小和分頁? – Neil
什麼是'APPTech'? – Marco