我正在尝试显示复选框列表中每个复选框的工具提示。我需要来自数据库的描述。虽然描述很长,但我得到System.IndexOutOfRangeException
。有谁知道如何解决这一问题?请帮忙!
int i = 0;
foreach (ListItem l in this.agile_factors.Items) {
while (dr.Read())
{
string description = dr["Description"].ToString();
l.Attributes["title"] = description;
}
i++;
}
conn.Close();
答案 0 :(得分:1)
在尝试使用它之前检查列的存在是否简单?
foreach (ListItem l in this.agile_factors.Items) {
while (dr.Read())
{
if (dr["Description"] != null)
{
string description = dr["Description"].ToString();
l.Attributes["title"] = description;
}
}
i++;
}
答案 1 :(得分:0)
这不会起作用。
1)while
循环将在foreach
循环的第一次迭代中读取整个datareader。第一个列表项的l.Attributes["title"]
仅等于上一个记录的值,那么在下一个foreach
次迭代中读取数据引导程序时应该得到错误。虽然我不认为这是“指数超出范围。”
2)索引超出范围可能是因为datareader没有列,其中包含您在其中使用的名称之一。
打开调试器应该很快清除它。