Member 12931315 Ответов: 2

Как перейти к следующей строке в цикле while


Как перейти к следующей строке в цикле while в таблице

Что я уже пробовал:

while (rows["Token_no"].ToString() == cToken && DateTime.Parse(rows["Date"].ToString()) == dDDate)
{
  rows.BeginEdit();
  rows["In_out"] = "I";
  rows.EndEdit();

  // want move to next row
}

Kornfeld Eliyahu Peter

Что такое "ряды"? И что вы подразумеваете под строками ["]? Вы скомпилировали этот код?

2 Ответов

Рейтинг:
1

Maciej Los

Другой способ (в качестве альтернативы решению 1 путем RickZeeland[^]) для обновления данных стоит использовать Linq.

Взгляните на пример:

DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("ID", typeof(int)));
dt.Columns.Add(new DataColumn("In_out", typeof(string)));
for(int i=0; i<50; i++)
{
	dt.Rows.Add(new Object[]{i, string.Format("row{0}",i)});
}


var query = dt.AsEnumerable()
    .Where(r=>r.Field<int>("ID") % 2 ==0)
    .ToList();

foreach (DataRow row in query)
{
    row.SetField("In_out", "I");
}


Результат:
ID In_out
0  I 
1  row1 
2  I 
3  row3 
4  I 
5  row5 
6  I


Измените код в соответствии с вашими потребностями.


Рейтинг:
0

RickZeeland

Что-то вроде этого:

foreach (DataRow row in rows)
{
	if (row["Token_no"].ToString() == cToken && DateTime.Parse(row["Date"].ToString()) == dDDate)
	{
		row["In_out"] = "I";
	}
}
Вот интересная статья о работе с DataTable и DataRow:[^]

Если у вас есть DataTable таблица, то вы можете использовать:
While (i < table.Rows.Count)
{
   DataRow row = table.Rows[i];
   i++;
}


Member 12931315

Большое вам спасибо за ответ

Извините, что я не поместил весь код целиком , он уже находится в цикле foreach
там я беру token_no и дату в цикле while для token_no, потому что есть несколько token_no в день ,как только я работал с текущим, я хочу переместить следующую строку (запись)
Возможно ли это в цикле while

Спасибо

Аджит