我對以下代碼有些困難,當我運行代碼時,它通過了每個沒有問題,但我的結果不是我想要的,代碼的想法是基於從數據表結果的雙贏的形式,但是當代碼運行沒有任何按鍵都顯示在表格上,和一個應該表現爲有一個「是」價值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