我对以下代码有些困难,当我运行代码时,它通过了每个没有问题,但我的结果不是我想要的,代码的想法是基于从数据表结果的双赢的形式,但是当代码运行没有任何按键都显示在表格上,和一个应该表现为有一个“是”价值Foreach循环/数据表
private void formconfig1()
{
dtresults = SQLMethods.GetUserNames();
string scrap;
string production;
string change;
int i = 0;
foreach (DataRow row in dtresults.Rows)
{
scrap = dtresults.Rows[i]["btnscrap"].ToString();
if (scrap.Equals("yes"))
{
btnSREntry.Show();
}
else
{
btnSREntry.Hide();
}
production = dtresults.Rows[i]["btnproduction"].ToString();
if (production.Equals("yes"))
{
btnProductionEntry.Show();
}
else
{
btnProductionEntry.Hide();
}
change = dtresults.Rows[i]["btnchange"].ToString();
if (change.Equals("yes"))
{
btnSRChange.Show();
}
else
{
btnSRChange.Hide();
}
i++;
}
在foreach循环中手动递增循环计数器会引发警钟。当你使用迭代器时,你不需要维护一个循环索引。使用'row'而不是'dtresults.Rows [i]'并且完全摆脱'i'。 – 2013-04-22 14:47:31
为什么当你使用'DataTable.Rows [indexer]'属性时,为什么使用'foreach'给当前行? – 2013-04-22 14:47:56
另外,你有没有尝试用调试器遍历代码并查看返回的行? – Mels 2013-04-22 14:48:32