日期:2014-05-18  浏览次数:20422 次

for逻辑的问题
i=1
…………
i=i+1
if i>5 then
…………
exit do
end if
rs.movenext
loop
rs.movenext

if rsOrder.eof then
…………
else
…………
end if


以上ASP写的逻辑在c#中好何搞
if (UpOrder_dt_1.Rows.Count > 0)
for (int i = 1; i < UpOrder_dt_1.Rows.Count; i++)
{
………………………………………………………………………………
}



------解决方案--------------------
C# code

for (int i = 1; i <= UpOrder_dt_1.Rows.Count; i++) 
{
......

if(i>5)
{
......
break;
}
}

------解决方案--------------------
你应该这样 for (int i = 0; i < UpOrder_dt_1.Rows.Count; i++)
------解决方案--------------------
if (UpOrder_dt_1.Rows.Count > 0)
{
for (int i = 1; i < UpOrder_dt_1.Rows.Count; i++)
{
……………………
if (i > 5)
{
………………
break; 
}

}
}

if (UpOrder_dt_1.Rows.Count == 0)
{
………………
}
else
{
………………

}
------解决方案--------------------
看不懂asp,不够你那样写也没语法错误啊?
------解决方案--------------------
既然有exit do ,那你就应该把 do或do while也写出来,先假设是这样的吧
i=1 
do while not rsorder.eof
………… 
i=i+1 
if i>5 then 
………… 
exit do 
end if 
rs.movenext 
loop 
rs.movenext 

if rsOrder.eof then 
………… 
else 
………… 
end if 

改后 

int i=1;
while (rsorder.read()) //这儿的rsorder应该是datareader对象
{
i=i+1;
if (i>5)
break;
}
if(!rsorder.read()) //这儿的rsorder.read()相当于再一次rs.movenext 
{
...;
}
else
{
...;
}

------解决方案--------------------
lz是不是要取UpOrder_dt_1中的值?
IEnumerator pageSourceEnumerator = UpOrder_dt_1.DefaultView.GetEnumerator();
int i = 0;
while (pageSourceEnumerator.MoveNext())
{
object current = pageSourceEnumerator.Current;
string ItemID = DataBinder.GetPropertyValue(current, "ID").ToString();
i++;
}

------解决方案--------------------
楼主的rs和后面的rsOrder不是同一个数据集

我也不理解为什么有第二个rs.movenext,照理说如果之前的do while 是 not rs.eof的话,loop之后再写rs.movenext是要出错的吧。