循环取数问题,得不到最大的数字

paul9137 2008-01-26 10:35:32
向DataTable guestneeds中加数据
从给定的needid开始循环,0 <= needid <= 999。
其中0 《= neeid < 900是区间一,900 <= neeid <=999是区间二。
如果给的needid >= 900,循环中递增到超过999,则查区间一是否可加入数据(即区间现有数字是否小于900)有则加,没有则停止加入数据。
其它部分正常,可是得不到needid=999的那一项。请高手指教下,到底是哪时出问题了呢?

//循环开始
string[] arr = str.Split('\n');
foreach (string s in arr)
{
s.Trim();
if (needid == -1)//如果已经累加过一次,则什么也不做
{
}
else if (needid < 900)
{

DataRow newRow;
newRow = guestneeds.NewRow();
needtxt = s;
DataRow[] foundRows;
foundRows = guestneeds.Select("needs ='" + needtxt + "'");
if (foundRows.Length == 0)//如果为新要求
{
newRow["needcode"] = needid.ToString();
guestneeds.Rows.Add(newRow);
guestneeds.AcceptChanges();
needcod = needcod + needid.ToString();
}
needid++;
}

else //如果needid >= 900
{
if (needid > 999)//如果needid > 999,查小于900 needid的最小序号
{
DataRow[] foundCode;
foundCode = guestneeds.Select("needcode < 900", "needcode DESC");
needid = str2int(foundCode[0]["needcode"].ToString()) + 1;//此处应为查找到的小于990的最大needid
if (needid < 900)//如果查到的最小序号小于899
{
DataRow newRow;
newRow = guestneeds.NewRow();
needtxt = s;
DataRow[] foundRows;
foundRows = guestneeds.Select("needs ='" + needtxt + "'");
if (foundRows.Length == 0)//如果为新要求
{
newRow["needcode"] = needid.ToString();
guestneeds.Rows.Add(newRow);
guestneeds.AcceptChanges();
needcod = needcod + needid.ToString();
}
needid++;
}
else//如果查到的needie=899,录入数据已超过999个
{
needid = -1;//停止数据加入
}
}
else//如果900 <= needid <= 999
{
DataRow newRow;
newRow = guestneeds.NewRow();
needtxt = s;
DataRow[] foundRows;
foundRows = guestneeds.Select("needs ='" + needtxt + "'");
if (foundRows.Length == 0)//如果为新要求
{
newRow["needcode"] = needid.ToString();
guestneeds.Rows.Add(newRow);
guestneeds.AcceptChanges();
needcod = needcod + needid.ToString();
}
needid++;
}
}
}

...全文
99 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
paul9137 2008-01-27
  • 打赏
  • 举报
回复
嗯,那个1000我试过了,还是没有999,怪
paul9137 2008-01-26
  • 打赏
  • 举报
回复
顶上去,继续求助
nj_1st_excellence 2008-01-26
  • 打赏
  • 举报
回复
查看下
arr.Length
sjm2003 2008-01-26
  • 打赏
  • 举报
回复
你干脆写在一起多好,一下子查小于900的然后又查大于900的,乱啊!
sjm2003 2008-01-26
  • 打赏
  • 举报
回复
不太清楚,看了一下!

如果你能得到998,只是不能得到999,那就是你定义的区间范围小了,你定义到1000看看!

111,118

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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