【发布时间】:2017-09-28 18:45:17
【问题描述】:
我有一个DataTable,叫做table。我需要找到存储在table 中的DataRow 的索引。
DataRow[] user = table.Select("Username = '" + username + "'");
table.Rows.IndexOf(user[0]);
第一行工作正常。我知道它返回一个有效的DataRow,因为我在其他地方使用了DataRow。但是,当我运行table.Rows.IndexOf(user[0]); 时,它会抛出System.IndexOutOfRangeException,说“索引超出了数组的范围”。我不明白为什么这会引发异常。有人有什么想法吗?
【问题讨论】:
-
在你的表中你有一个字段是“用户名 = xxxxxx”吗?这就是它正在寻找的东西。
-
有一列叫Username。
-
当您将鼠标悬停在用户上时,在第一行,您能看到 {System.Data.DataRow[1]} 吗?我通过创建一个虚拟表并添加一行来运行您的代码。它毫无例外地工作。
-
我认为是
user[0]引发了异常。您的查询不得返回任何结果 -
@JFT 它显示 {System.Data.DataRow[0]}。