内存不足 c# List<>
out of memory c# List<>
我使用 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);
}
}
问题已通过使用 class 而不是 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);
}
}
我使用 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);
}
}
问题已通过使用 class 而不是 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);
}
}