如何在datatable中插入一行?

cc加油 2014-12-13 04:01:28
需求是这样的,我在sql中查出一个发票号段的数据在datatable中(例如:1000001--10000099),但是发票号不是连续的,有的是作废的。我现在要做的就是修改内存中的datatable,把这些发票号也显示出来,备注作废。求代码,最好是代码!!谢谢!!
...全文
504 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ajaxfeifei 2014-12-15
  • 打赏
  • 举报
回复
修改一下,更严谨一些,自己在这个基础上修改吧。

 public void main()
        {
            int beginNo = 0;//开始号码段
            int endNo = 1000000;//结束号码段
            var taxNoteTable = GetNoteTable(beginNo,endNo);
            InsertCancelTaxNote(taxNoteTable,beginNo,endNo);//插入作废发票号
        }
        private DataTable GetNoteTable(int beginNo, int endNo)
        {
            throw new NotImplementedException();
        }
        private void InsertCancelTaxNote(DataTable taxNoteTable,int beginNo,int endNo)
        {
            var preNoteID = beginNo;//存储前一次发票编号
            var newrowList=new List<DataRow>();//暂存新增的表行
            var tablCount = taxNoteTable.Rows.Count;
            var index = 0;
            foreach (DataRow row in taxNoteTable.Rows)
            {
                index++;
                var currentTaxNo = (int) row["发表编号字段名"];            
                for (int i = preNoteID + 1; i < currentTaxNo; i++) //判断是否有不存在的发票编号,如果有则表示是作废的
                {
                    var newrow = taxNoteTable.NewRow();
                    newrow["发表编号字段名"] = i;
                    newrow["备注字段名"] = "作废";
                    newrowList.Add(newrow);
                }
                preNoteID = currentTaxNo;
                if (index==tablCount)//判断是否是最后一条数据,如果是最后一条则用endNo再判断一次。
                {
                    for (int i = preNoteID + 1; i < endNo; i++) //判断是否有不存在的发票编号,如果有则表示是作废的
                    {
                        var newrow = taxNoteTable.NewRow();
                        newrow["发表编号字段名"] = i;
                        newrow["备注字段名"] = "作废";
                        newrowList.Add(newrow);
                    }
                }
            }
        }
ajaxfeifei 2014-12-15
  • 打赏
  • 举报
回复

public void main()
        {
            int beginNo = 0;//开始号码段
            int endNo = 1000000;//结束号码段
            var taxNoteTable = GetNoteTable(beginNo,endNo);
            InsertCancelTaxNote(taxNoteTable,beginNo,endNo);

        }

        private DataTable GetNoteTable(int beginNo, int endNo)
        {
            throw new NotImplementedException();
        }

        private void InsertCancelTaxNote(DataTable taxNoteTable,int beginNo,int endNo)
        {

            var preNoteID = beginNo;//存储前一次发票编号
            var newrowList=new List<DataRow>();//暂存新增的表行
            foreach (DataRow row in taxNoteTable.Rows)
            {
                var currentTaxNo = (int) row["发表编号字段名"];
                for (int i = preNoteID + 1; i < currentTaxNo; i++) //判断是否有不存在的发票编号,如果有则表示是作废的
                {
                    var newrow = taxNoteTable.NewRow();
                    newrow["发表编号字段名"] = i;
                    newrow["备注字段名"] = "作废";
                    newrowList.Add(newrow);
                }
                preNoteID = currentTaxNo;
            }
        }
於黾 2014-12-15
  • 打赏
  • 举报
回复
DataTable dt=new DataTable();//数据从哪里来,自己考虑,这里先随便定义一个 DataRow dr=dt.NewRow();//定义一个新行 //这里可以循环对dr[0],dr[1]赋值,这个新行就有值了 dt.Rows.Add(dr);//把新行加入表 //也可以使用dt.Rows.InsertAt(rowid)将新行插入中间
天空丶蒋 2014-12-15
  • 打赏
  • 举报
回复
请问你是怎么来区分 作废的发票 与可用的发票的?
ajaxfeifei 2014-12-15
  • 打赏
  • 举报
回复
DataTable排序: taxNoteTable.DefaultView.Sort = "Sum ASC"; DataTable dtTemp = dt.DefaultView.ToTable(); return dtTemp

62,073

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧