簡體   English   中英

從excelsheet讀取時索引超出了數組的范圍

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM