Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >C#中的Stackoverflow异常

在ASP.net C#代码中,我得到了堆栈溢出异常。该应用程序进入中断模式。我正在取的记录在1000以上,如果我超过1,35,它就会打破。如果射程达到30,它就能正常工作。代码只是生成html,我们使用生成的html作为报告。有人能帮忙吗?

下面是我的代码;

代码语言:javascript
运行
AI代码解释
复制
    using System;
using System.Collections.Generic;
using System.Data;
using System.Globalization;
using System.Linq;
using System.Text;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace ARF.UI.Pages
{
    public partial class fromtoinvoiceofficecopy : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            string from = Request.QueryString["FromInvoiceNo"];
            string to = Request.QueryString["ToInvoiceNo"];

            Double FromInvoiceNum = Convert.ToDouble(from);
            Double ToInvoiceNum = Convert.ToDouble(to);

            DataSet ds = DAL.ReportData.Rpt_NonSaleTaxInvoiceByInvoiceNum(FromInvoiceNum, ToInvoiceNum);
            DataTable NonSaleTaxInvoiceHeader = ds.Tables[0];
            DataRow row = NonSaleTaxInvoiceHeader.Rows[0];
            string note = row["Notes"].ToString();
            DataTable NonSaleTaxInvoiceDetail = ds.Tables[1];

            //myDiv.InnerHtml = "From: "+from+"<br>"+"To: "+to;
            myDiv.InnerHtml = CreateHTMLTableFromDatatable(NonSaleTaxInvoiceHeader, NonSaleTaxInvoiceDetail);
        }
        public static string CreateHTMLTableFromDatatable(DataTable dtItems, DataTable dtDetails)
        {
            string html = "";
            StringBuilder htmlStr = new StringBuilder("");
            double TotalGrossAmt = 0;
            double TotalDiscount = 0;
            double TotalNetAmt = 0;
            double Freight = 0;
            //add rows
            for (int i = 0; i < dtItems.Rows.Count; i++)
            {
                htmlStr.Append("<div align='center' class='hdrcontent'><div class='logotxt'><img src='../Images/d_logo.png' style='width:60px'><b>XYZ Laboratories</b></div><div class='addr'>XYZ Road, XYZ CITY, XYZ<br>Tel:   Fax # </div></div><br><br>");
                htmlStr.Append("<b>");
                htmlStr.Append("<table class='hdrtbl'>");
                htmlStr.Append("<tr>");
                htmlStr.Append("<td>" + "Customer Code:" + "</td>");
                htmlStr.Append("<td>" + dtItems.Rows[i]["Code"].ToString() + "</td>");
                htmlStr.Append("<td></td>");
                htmlStr.Append("<td>" + "Invoice#:" + "</td>");
                htmlStr.Append("<td>"+dtItems.Rows[i]["InvoiceNumber"].ToString()+"</td>");
                htmlStr.Append("</tr>");
                htmlStr.Append("<tr>");
                htmlStr.Append("<td>Customer Name:</td>");
                htmlStr.Append("<td>"+dtItems.Rows[i]["InvoiceTo"]+"</td>");
                htmlStr.Append("<td></td>");
                htmlStr.Append("<td>Date:</td>");
                htmlStr.Append("<td>" + string.Format("{0:yyyyMMdd}", dtItems.Rows[i]["Date"])+ "</td>");
                htmlStr.Append("</tr>");
                htmlStr.Append("<tr>");
                htmlStr.Append("<td>Address:</td>");
                htmlStr.Append("<td>" + dtItems.Rows[i]["Address"] + "</td>");
                htmlStr.Append("<td></td>");
                htmlStr.Append("<td>DC Number:</td>");
                htmlStr.Append("<td>" + dtItems.Rows[i]["DeliveryChallanNo"] + "</td>");
                htmlStr.Append("</tr>");
                htmlStr.Append("<tr>");
                htmlStr.Append("<td>Mobile No:</td>");
                htmlStr.Append("<td>" + dtItems.Rows[i]["Mobile"] + "</td>");
                htmlStr.Append("<td></td>");
                htmlStr.Append("<td>BILTY Number:</td>");
                htmlStr.Append("<td>" + dtItems.Rows[i]["TRRRNo"] + "</td>");
                htmlStr.Append("</tr>");
                htmlStr.Append("<tr>");
                htmlStr.Append("<td>Forwarded Through:</td>");
                htmlStr.Append("<td>" + dtItems.Rows[i]["CarrierMS"] + "</td>");
                htmlStr.Append("<td></td>");
                htmlStr.Append("<td>Total Cartons:</td>");
                htmlStr.Append("<td>" + dtItems.Rows[i]["Cartons"] + "</td>");
                htmlStr.Append("</tr>");
                htmlStr.Append("</table>");
                htmlStr.Append("</b><br><br>");

                DataRow[] childs = lookupInvoiceDetails(dtDetails, dtItems.Rows[i][0].ToString());
                int length = childs.Length;
                htmlStr.Append("<tr>");
                htmlStr.Append("<table class='tbl'>");
                htmlStr.Append("<tr class='hdrsub'>");
                htmlStr.Append("<td>Product Name</td><td>Pack Size</td><td>Qty</td><td>Bonus</td>");
                htmlStr.Append("<td>Batch<br>Number</td><td>Rate (Rs)</td><td>GROSS AMT <br>(Rs) </td><td>Discount <br>%age </td><td>Discount<br>Amount<br>(Rs) </ td><td>Net Amount<br>(Rs) </td>");
                htmlStr.Append("</tr>");
                foreach(DataRow dr in childs)
                {
                    htmlStr.Append("<tr>");
                    htmlStr.Append("<td>"+dr["ItemAndUnitPacking"]+"</td>");
                    htmlStr.Append("<td>"+dr["PackSizeDisplay"] +"</td>");
                    htmlStr.Append("<td>"+dr["QTY"]+"</td>");
                    htmlStr.Append("<td>"+dr["Bonus"]+"</td>");
                    htmlStr.Append("<td>"+dr["BatchNumber"]+"</td>");
                    htmlStr.Append("<td>"+dr["UnitPrice"]+"</td>");
                    htmlStr.Append("<td>"+dr["GrossAmtRs"]+"</td>");
                    htmlStr.Append("<td>"+dr["DiscountPercentage"] +"</td>");
                    htmlStr.Append("<td>"+dr["TradeDiscount"] +"</td>");
                    htmlStr.Append("<td>"+ dr["NetAmountRs"] + "</td>");

                    TotalGrossAmt += Convert.ToDouble(dr["GrossAmtRs"].ToString());
                    TotalDiscount += Convert.ToDouble(dr["TradeDiscount"].ToString());
                    TotalNetAmt += Convert.ToDouble(dr["NetAmountRs"].ToString());
                    Freight = Convert.ToDouble(dr["Freight"].ToString());

                    htmlStr.Append("</tr>");
                }
                htmlStr.Append("<tr>");
                htmlStr.Append("<td colspan='5'>Invoice Remarks (If Any) :</td>");
                htmlStr.Append("<td><b>Total</b></td>");
                htmlStr.Append("<td><b>"+TotalGrossAmt.ToString("#,##0.00") + "</b></td>");
                htmlStr.Append("<td></td>");
                htmlStr.Append("<td><b>"+TotalDiscount.ToString("#,##0.00") + "</b></td>");
                htmlStr.Append("<td><b>"+TotalNetAmt.ToString("#,##0.00") + "</b></td>");
                htmlStr.Append("</tr>");
                htmlStr.Append("<tr>");
                htmlStr.Append("<td colspan='5'></td>");
                htmlStr.Append("<td colspan='4'><b>LESS BILTY Charges</b></td>");
                htmlStr.Append("<td><b>"+Freight.ToString("#,##0.00") + "</b></td>");
                htmlStr.Append("</tr>");
                htmlStr.Append("<tr>");
                htmlStr.Append("<td colspan='5'></td>");
                htmlStr.Append("<td colspan='4'><b>NET PAYABLE</b></td>");
                htmlStr.Append("<td><b>"+(TotalNetAmt-Freight).ToString("#,##0.00") + "</b></td>");
                htmlStr.Append("</tr>");
                htmlStr.Append("<tr>");
                htmlStr.Append("<td colspan='10'><b>WARRANTY:-</b> I,under Section:23(1)(i) of the Drug Act, 1976,hereby give this warranty that the Drugs described in");
                htmlStr.Append("this invoice and sold by us do not cotravene in any way with the provisions of section 23 of the");
                htmlStr.Append("Drugs Act,1976.</td>");
                htmlStr.Append("</tr>");
                htmlStr.Append("<tr><td colspan='10'>&nbsp;</td></tr>");
                htmlStr.Append("<tr>");
                htmlStr.Append("<td colspan='10'><b>TERMS & CONDITIONS:-</b><br>");
                htmlStr.Append("1.Damage / Breakage / Leakage of stock will only be entertained, if informed in writing within 15 days from date of invoice.<br>");
                htmlStr.Append("2.Claims of Near Expiry Stock will be entertained, if informed in wrting before three(3) months prior to expired.<br>");
                htmlStr.Append("3.Your complaints will only be entertained, if it will be submitted in writing to Head office at ");
                htmlStr.Append("</td>");
                htmlStr.Append("</tr>");
                htmlStr.Append("</table>");
                htmlStr.Append("<br>");
                htmlStr.Append("</tr>");
                htmlStr.Append("<table class='footertbl'>");
                htmlStr.Append("<tr>&nbsp;</tr>");
                htmlStr.Append("<tr>");
                htmlStr.Append("<td style='width:150px;'><b>CHECKED BY:</b></td><td> --------------------------- </td><td></td><td></td><td></td>");
                htmlStr.Append("<td><b>ISSUED BY:</b></td><td colspan='2'>-------------------------</td>");
                htmlStr.Append("</tr>");
                htmlStr.Append("<tr>");
                htmlStr.Append("<td><br><br><b>Printed date "+ DateTime.Now + "</b></td>");
                htmlStr.Append("<tr>");
                htmlStr.Append("</table>");
            }
            htmlStr.Append("</table>");
            return htmlStr.ToString();
        }
        static public DataRow[] lookupInvoiceDetails(DataTable dtDetails, string qry)
        {
            DataRow[] foundInvoiceDetails = dtDetails.Select("NonSaleTaxInvoiceId = '" + qry + "'");

            if (foundInvoiceDetails.Length != 0)
            {
                //return foundInvoiceDetails;

            }
            return foundInvoiceDetails;
        }
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-07-19 22:12:40

我通过指定StringBuilder的容量和最大容量来解决这个问题,下面是我更改的行;

代码语言:javascript
运行
AI代码解释
复制
StringBuilder htmlStr = new StringBuilder(276438, Int32.MaxValue);

这也是一个暂时的解决办法。我愿意接受更好的建议。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51400000

复制
相关文章
EF Code First 学习笔记:关系
项目中最常用到的就是一对多关系了。Code First对一对多关系也有着很好的支持。很多情况下我们都不需要特意的去配置,Code First就能通过一些引用属性、导航属性等检测到模型之间的关系,自动为我们生成外键。观察下面的类:
跟着阿笨一起玩NET
2018/09/19
7760
EF Code First 学习笔记:关系
WCF Data Services 5.0 和 EF 4.3 Code First
WCF Data Services 5.0已经在4月9日发布,支持OData V3版本的协议。之前版本的WCF Data Services是随.NET FX 4.0发布的,这次是单独提供了安装包下载。这个版本有几个特性很不错,具体参看文章 http://blogs.msdn.com/b/writingdata_services/archive/2012/04/09/my-favorite-things-in-odata-v3-and-wcf-data-services-5-0.aspx。 新特性主要用于支持
张善友
2018/01/29
9050
(转载)EF 使用code first模式创建数据库和 填充种子数据
第一篇:来自 .net 开发菜鸟 博主的文章:https://www.cnblogs.com/dotnet261010/p/8035213.html
CherishTheYouth
2019/09/11
8750
EF 数据库连接约定(Connection String Conventions in Code First)
一个典型的EF应用大多数情况下是一个DbContext的派生类(derived class)来控制,通常可以使用该派生类调用DbContext的构造函数,来控制以下的东西: (1)、上下文如何连接到数据库(给定连接字符串) (2)、上下文是通过Code First语法计算模型还是使用EF 设计器 (3)、额外的高级选项 下面是DbContext构造器的常用的用途: 一、DbContext无参构造函数 如果当前EF应用中没有做任何的配置.且在你自定义的数据库上下文类中没有调用DbContext带参的构造函数,
郑小超.
2018/01/26
1.5K0
MVC Code First (代码优先)
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/116945.html原文链接:https://javaforall.cn
全栈程序员站长
2022/07/06
9400
MVC Code First (代码优先)
VS2010+EF Code First 4.1学习MVC3(三)
htmlHelper 和UrlHelper 类,这是我们在View层进行页面显示组件的常用类或者是唯一类,但是我们又对它了解哪些呢?我们了解为什么可以使用htmlHelper类?因为使用了扩展方法,我们自己是否可以正确的定义一些helper类来满足我们自己的业务需求,对于扩展方法我们又理解多少?htmlHelper类中的那几个方法我们是否完全的掌握?
Isaac Zhang
2019/09/10
4760
VS2010+EF Code First 4.1学习MVC3(三)
VS2010+EF Code First 4.1学习MVC3(一)
这里的环境只有VS2010,EF CF4.1,继续加入Jquery EasyUI,做一个用户列表(选中,编辑,删除,新增)
Isaac Zhang
2019/09/10
5080
VS2010+EF Code First 4.1学习MVC3(一)
VS2010+EF Code First 4.1学习MVC3(二)
在MVC中,Area使我们的业务逻辑更加清晰,为我们后期的维护带来了极大的便利,那么今天我就来啃啃这一块的东西,可以很方便的替代UrlRouting的一些功能哦~~
Isaac Zhang
2019/09/10
4470
VS2010+EF Code First 4.1学习MVC3(二)
Entity Framework Code-First 文章汇集
为了支持以设计为中心的开发流程,EF4 还更多地支持以代码为中心 (code-centric) ,我们称为代码优先的开发,代码优先的开发支持更加优美的开发流程,它允许你: 在不使用设计器或者定义一个 XML 映射文件的情况下进行开发。 允许编写简单的模型对象POCO (plain old classes),而不需要基类。 通过"约定优于配置",使得数据库持久层不需要任何的配置 也可以覆盖"约定优于配置",通过流畅的 API 来完全定制持层的映射。 使用Code first这个模式后,你的项目中可以说就不再需
张善友
2018/01/30
8000
关于EF Code First模式不同建模方式对建表产生的影响
今天在学EF Code First模式的时候,发现几个很有趣的问题,问题如下: 1、当编写玩实体后,不指定任何主键约束,EF会找长的最像Id的,然后设置其为主键,验证代码如下: //User类 class User { public Guid UserId { get; set; } public string Name { get; set; } } class CodeFirstContext:DbContext {
郑小超.
2018/01/26
1K0
【原】尝试 Entity Framework POCO功能+Code First
Entity Framework 2.0中添加了的支持POCO(Plain Old CLR Object)的功能,这使得EF的功能越来越强大了。
老马
2022/05/10
5760
【原】尝试 Entity Framework POCO功能+Code First
Entity Framework 4.1 Code-First 学习笔记
  CodeFirst提供了一种先从代码开始工作,并根据代码直接生成数据库的工作方式。Entity Framework 4.1在你的实体不派生自任何基类、不添加任何特性的时候正常的附加数据库。另外呢,实体的属性也可以添加一些标签,但这些标签不是必须的。下面是一个简单的示例:
拓荒者IT
2019/09/25
1.7K0
Entity Framework Code First 支持存储过程
存储过程(Stored Procedure)不仅仅是将多得简直荒唐的业务逻辑塞入数据库的一种方式;它还是避免将多得简直荒唐的存储逻辑塞入应用程序层(application layer)的一种方式。它使得应用程序可被视为理想的数据表现,同时又不会泄露数据库管理员(DBA)的神机妙算。各种各样的暂存表、非规范化的报告表、视图、以及表函数都被隐藏在简单的存储过程调用背后,从而形成了数据库的公共应用编程接口(API)。注意,从微小的性能调整到全面重构的一切都可以完成,且无须重新部署许许多多依赖于该数据库的应用程序。
张善友
2018/01/30
5770
Entity Framework应用:使用Code First模式管理数据库创建和填充种子数据
在数据库上下文类中,如果我们只继承了无参数的DbContext,并且在配置文件中创建了和数据库上下文类同名的连接字符串,那么EF会使用该连接字符串自动计算出数据库的位置和数据库名。比如,我们的数据库上下文定义如下:
CherishTheYouth
2019/09/11
1.3K0
Entity Framework应用:使用Code First模式管理数据库创建和填充种子数据
创建自己的Code Snippets在VSCode中
1. Go to Code → Preferences → User Snippets
前端知否
2020/03/23
2.8K0
创建自己的Code Snippets在VSCode中
RAM IP Core中 Write First Read First和No Change的区别
可能很多人都没注意过这个选项,记得毕业季去华为面试的时候,还问过我这个问题,当时也是没答上来。后来也发现很多面试官都喜欢问这个问题,今天我们就来讲一下。
猫叔Rex
2020/06/29
1.3K0
在 Visual Studio Code (VS Code) 中设置
在 Visual Studio Code (VS Code) 中设置代理服务器的详细教程如下:
用户614136809
2023/10/25
1.5K0
EF Core使用CodeFirst在MySql中创建新数据库以及已有的Mysql数据库如何使用DB First生成域模型
官方教程:https://docs.microsoft.com/en-us/aspnet/core/data/?view=aspnetcore-2.1 使用EF CodeFirst在MySql中创建新
Ryan_OVO
2023/10/19
5600
laravel 中first和find区别(总结一)
除了从指定的数据表检索所有记录外,你也可以通过 find 或 first 方法来检索单条记录。这些方法不是返回一组模型,而是返回一个模型实例:
全栈程序员站长
2022/07/08
8920
Coroutines : First things first
该系列博客深入探索了协程的取消和异常。取消 可以避免进行预期以外的工作,从而节省内存和电量;合适的异常处理 可以带来良好的用户体验。作为该系列另外两篇文章的基础,通过本文搞清楚协程的一些基本概念,例如 CoroutineScope 、Job 、CoroutineContext 等,是非常重要的。
路遥TM
2021/08/31
6680

相似问题

EF Code First DBContext和事务

131

EF Code First -删除后播种,然后创建数据库

31

EF Code first部署脚本

20

EF Code first父子映射

10

EF Code first DropCreateDatabaseIfModelChanges部署

13
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档