【发布时间】:2014-12-23 14:48:20
【问题描述】:
我正在尝试从以下 xml 文件中获取货币代码。但我得到一个名为 IndexOutOfRange 的异常。
<string xmlns="http://www.webserviceX.NET">
<NewDataSet>
<Table>
<Name>India</Name>
<CountryCode>in</CountryCode>
<Currency>Rupee</Currency>
<CurrencyCode>INR</CurrencyCode>
</Table>
<Table>
<Name>India</Name>
<CountryCode>in</CountryCode>
<Currency>Rupee</Currency>
<CurrencyCode>INR</CurrencyCode>
</Table>
</NewDataSet>
</string>
这是我的代码,
string firstCurrency = countryService.GetCurrencyByCountry(this.DropDownList1.SelectedIndex.ToString());
DataSet dataset = new DataSet();
dataset.ReadXml(new XmlTextReader(new StringReader(firstCurrency)));
String currency = dataset.Tables[0].Rows[0][2].ToString();
String currencyCode = dataset.Tables[0].Rows[0][3].ToString();
currencyLabel.Text = currency;
currencyCodeLabel.Text = currencyCode;
错误发生在下面一行,
String currency = dataset.Tables[0].Rows[0][2].ToString();
我尝试了几个小时,但找不到解决方案。
【问题讨论】:
-
用调试器查看你的数据集。它不应该需要几个小时。我想知道人们是如何在不知道如何使用它的情况下走到现在的......
-
那么您是否检查过有一个表,它有第一行,并且该行有3列?您在一条语句中执行了三个索引操作 - 您是否尝试找出其中哪些失败了?
-
我建议进入你的代码并在抛出错误的行设置一个断点并使用调试器来探索你的数据集对象。
-
我猜你的第一行 (GetCurrencyByCountry) 实际上并没有返回你期望的字符串。