[英]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.