[英]Index was outside the bounds of the array while reading from excelsheet
我正在将excelsheet导入sqlserver数据库,但excel中有三列:
id|data|passport
我想确保所有护照都以字母开头,我收到的错误是:
if (a[0]>= 'A' && a[0] <= 'Z' && a[0] !='0' )
错误:
指数数组的边界之外。
for (int i1 = 0; i1 < dt7.Rows.Count; i1++)
{
if (dt7.Rows[i1]["passport"]==null)
{
dt7.Rows[i1]["passport"] = 0;
}
string a = Convert.ToString(dt7.Rows[i1]["passport"]);
//char a1 = a[0];
if (a[0]>= 'A' && a[0] <= 'Z' && a[0] !='0' )
{
Label12.Text = "CAPITAL";
break;
}
else
{
Label12.Text = "notgood";
flag = flag + 1;
}
它听起来像是a
空数组,因此在索引0
处没有元素。 在尝试访问第一个元素之前,您需要检查数组是否为空。
当然,单词和excel范围内的对象是基于1的数组,并且在访问索引0时会抛出超出范围的异常。 我相信情况仍然如此。
正如@ anthony-grist所说,也有可能数组是空的,因此第一项将在数组边界之外。
我建议您测试数组的长度,并在索引1处开始访问。
为什么不像这样修改你的条件
If(!String.IsNullOrEmpty(a)){
If(Char.IsLetter(a[0])){
Label12.Text = "CAPITAL";
break;
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.