以下代码提供了我的Rehber数据的完整数据。但是,如果我想通过Gridview显示网页,请发送内存异常错误。
public static List<Rehber> GetAllDataOfRehber()
{
using (GenoTipSatisEntities genSatisCtx = new GenoTipSatisEntities())
{
ObjectQuery<Rehber> rehber = genSatisCtx.Rehber;
return rehber.ToList();
}
}
如果我直接绑定数据网格像这样没有问题发生每件事都很棒!!!
<asp:GridView ID="gwRehber" runat="server">
</asp:GridView>
如果以上代码将数据发送到Satis.aspx页面:
using GenoTip.BAL;
namespace GenoTip.Web.ContentPages.Satis
{
public partial class Satis : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
gwRehber.DataSource = SatisServices.GetAllDataOfRehber();
gwRehber.DataBind();
//gwRehber.Columns[0].Visible = false;
}
}
}
}
但我重新安排了我的gridview发送我的内存异常!!!!我需要这个安排来展示详细信息!!!
<asp:GridView ID="gwRehber" runat="server">
<Columns>
<%-- <asp:TemplateField>
<ItemTemplate>
<asp:Button runat="server" ID="btnID" CommandName="select" CommandArgument='<%# Eval("ID") %>' Text="Seç" />
</ItemTemplate>
</asp:TemplateField>--%>
<asp:BoundField DataField="Ad" HeaderText="Ad" />
<asp:BoundField DataField="BireyID" HeaderText="BireyID" Visible="false" />
<asp:BoundField DataField="Degistiren" HeaderText="Değiştiren" />
<asp:BoundField DataField="EklemeTarihi" HeaderText="EklemeTarihi" />
<asp:BoundField DataField="DegistirmeTarihi" HeaderText="Değiştirme Tarihi" Visible="false" />
<asp:BoundField DataField="Ekleyen" HeaderText="Ekleyen" />
<asp:BoundField DataField="ID" HeaderText="ID" Visible="false" />
<asp:BoundField DataField="Imza" HeaderText="Imza" />
<asp:BoundField DataField="KurumID" HeaderText="KurumID" Visible="false" />
</Columns>
</asp:GridView>
错误明细:
答案 0 :(得分:2)
所以看起来问题就是你把太多的东西放进了州;这很可能意味着一个(或两个):
为了解决这个问题,我建议在做任何可以将数据置于状态的事情之前投射到简单的DTO模型(因此你知道正好你正在序列化什么数据),并仔细观察关于您要处理的行数(适当地使用Take
和Where
)。