繁体   English   中英

DataTable.Rows.IndexOf 抛出 System.IndexOutOfRangeException C#

[英]DataTable.Rows.IndexOf throws System.IndexOutOfRangeException C#

我有一个名为tableDataTable 我需要找到存储在table中的DataRow的索引。

DataRow[] user = table.Select("Username = '" + username + "'");
table.Rows.IndexOf(user[0]);

第一行工作正常。 我知道它返回一个有效的DataRow因为我在其他地方使用了DataRow 但是,当我运行table.Rows.IndexOf(user[0]); ,它抛出一个System.IndexOutOfRangeException ,说“索引超出了数组的范围”。 我不明白为什么这会引发异常。 有没有人有任何想法?

@ServerS 问题是您没有收到第一行的任何行,计数为 0。您可能需要在执行 user[0] 之前检查计数。 下面是给你的示例代码。我试过了,效果很好。

        DataTable table = new DataTable();
        table.Clear();
        table.Columns.Add("Username");
        table.Columns.Add("Marks");

        DataRow dataRow = table.NewRow();
        dataRow["Username"] = "xyz";
        dataRow["Marks"] = "500";
        table.Rows.Add(dataRow);
        var username = "xyz";

        DataRow[] user = table.Select("Username = '" + username + "'");
        if(user.Length > 0 )
        table.Rows.IndexOf(user[0]);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM