我使用List<>从数据库存储数据调用以在printdocument中打印。 但是当行超过300时,会发生 OutOfMemoryException 。 清除记忆的任何解决方案?或任何其他方法将数据添加到列表?
private List<FormName> printItem = new List<FormName>();
public string printItemCode;
public string printPartNo;
public string printIssued;
public string printUOM;
//call from database
using (var rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
FormName item = new FormName()
{
printItemCode = rdr[0].ToString(),
printPartNo = rdr[1].ToString(),
printIssued = rdr[2].ToString(),
printUOM = rdr[3].ToString(),
};
printItem.Add(item);
}
}
答案 0 :(得分:0)
通过使用类而不是FormName解决了问题。
private List<Items> printItem = new List<Items>();
class Items
{
public string printItemCode { get; set; }
public string printPartNo { get; set; }
public string printIssued { get; set; }
public string printUOM { get; set; }
}
using (var rdr = cmd.ExecuteReader())
{
while (rdr.Read())
{
Items item = new Items()
{
printItemCode = rdr[0].ToString(),
printPartNo = rdr[1].ToString(),
printIssued = rdr[2].ToString(),
printUOM = rdr[3].ToString(),
};
printItem.Add(item);
}
}