程序员逻辑思维之控坑小能手

发布时间:2024-11-19 04:26

了解基础的编程逻辑,提升逻辑思维 #生活技巧# #工作学习技巧# #数字技能提升#

       作为程序员,逻辑思维不强不严瑾,后果就是完成的作品都是坑,这种坑有非常高的隐蔽性!因为程序在处理一般业务还能正常工作,不影响工作,只有当条件特殊时,给你来一下子,是不是很惊喜,是不是很意外,查找错误时也需要一步一步的爬,就是爬也要看运气才能找到这个坑!

     比如这次就遇到了一个坑,平时这程序都工作正常,几个月偶尔的漏一页数据!真是服呀!下面上代码。

using System.Collections.Generic;

using System.Data;

namespace ESBCommon

{

public static class DataExtension

{

public static KeyValuePair<int, DataTable>[] SplitDataTable(this DataTable originalTab, int rowsNum)

{

int temptableNum = originalTab.Rows.Count / rowsNum;

int remainder = originalTab.Rows.Count % rowsNum;

int tableNum = remainder == 0 ? temptableNum : temptableNum + 1;

var list = new List<KeyValuePair<int, DataTable>>();

if (tableNum > 0)

{

int sortIndex = 1;

int pageIndex = 1;

DataTable temp_ = originalTab.Clone();

for (int i = 0; i < originalTab.Rows.Count; i++)

{

temp_.ImportRow(originalTab.Rows[i]);

if (sortIndex >= rowsNum)

{

list.Add(new KeyValuePair<int, DataTable>(pageIndex, temp_));

sortIndex = 1;

temp_ = null;

temp_ = originalTab.Clone();

pageIndex += 1;

}

else

{

sortIndex++;

}

}

if (temp_.Rows.Count > 0)

{

list.Add(new KeyValuePair<int, DataTable>(pageIndex, temp_));

}

}

else

{

list.Add(new KeyValuePair<int, DataTable>(1, originalTab));

}

return list.ToArray();

}

}

}

        请看被/*   */注释的那段,当//获取数据余数  int remainder = originalTab.Rows.Count % rowsNum; 正好有整数页时,看第二页的 int maxRow = i * rowsNum + remainder;//有分页时会报错,第二页数据出不来 ;发现于2018/7/6 lys  最大行数maxRow就等于(i*rowsNum),这时开始现坑了,因为remainder=0了呀,第二页行数变成0了!!!平时运行,1小时的数据查回来的数据很少分页,只有偶尔业务好才会超过一页,不分页这段是能正常运行的,有分页,那就会丢掉一页数据了。程序运行很久了,我是刚进来没多久,但听老同事说以前也碰到,都是手工重新执行解决,这二个月出现3次了,我表示受不了,终于深挖后找到坑!!!!

      总之程序是很简单的事,但就是不容易做好呀!!!


网址:程序员逻辑思维之控坑小能手 https://www.yuejiaxmz.com/news/view/130274

相关内容

Python实现简单算法乘法:提升编程效率与逻辑思维
新的课程标准:学习逻辑=生活逻辑+学科逻辑?
学习的逻辑
严密的逻辑=横向逻辑+纵向逻辑+金字塔结构
职场新人眼中的十大基本工作能力:逻辑思维、设计思维能力重要度明显提升
从程序员到项目经理(一)
程序员的投资和理财之道
折晓叶:“田野”经验中的日常生活逻辑经验、理论与方法
程序员是做什么的 零基础入门到精通,收藏这篇就够了
钓鱼游戏教程和逻辑详解

随便看看