2013-10-17 48 views
0

我對C#Winform編程非常陌生。我想從Excel文件中讀取一列字符串。我定義了一個名爲cusip的字符串,一些cusip是空的,一些是純數字,一些是數字和字母混合的。讀完每個字符串後,如果長度超過8個字符,我只想保留8個字符,如果字符串爲空,我想將其命名爲「000000cm」。最後一步是將每個字符串添加到列表中,然後執行其他操作。保持字符串的前8個字符的錯誤

我不斷收到錯誤消息說「未將對象引用設置到對象的實例」在這行代碼:

cusip.Substring(0,7).ToString(); 

這裏是代碼的快照:

string cusip; 
cusip = Convert.ToString((range.Cells[rCnt, 3] as Excel.Range).Value2); 

if (cusip != "") 
{ 
    cusip.Substring(0,7).ToString(); 
} 
    else cusip = "000000cm"; 

cusipList.Add(cusip); 
+0

CUSIP似乎爲空。 – Gandarez

回答

2

cusip.Substring(0,7).ToString();不會更改cusip並且空檢查也可能導致問題。

更改代碼:

string cusip; 
cusip = Convert.ToString((range.Cells[rCnt, 3] as Excel.Range).Value2); 

if (!string.IsNullOrEmpty(cusip)) 
{ 
    cusip = (cusip.Length > 7) ? cusip.Substring(0,8) : cusip; 
} else { 
    cusip = "000000cm"; 
} 

cusipList.Add(cusip); 
0

試試這個:

string cusip = Convert.ToString((range.Cells[rCnt, 3] as Excel.Range).Value2); 

if (!string.IsNullOrEmpty(cusip)) 
{ 
    if (cusip.Length > 8) 
    { 
     cusip = cusip.Substring(0,8); 
    } 
} 
else 
{ 
    cusip = "000000cm"; 
} 

cusipList.Add(cusip); 
0

嘗試

string cusip = Convert.ToString((range.Cells[rCnt, 3] as Excel.Range).Value2)??""; 

if (!string.IsNullOrEmpty(cusip)) 
{ 
    cusip = cusip.Substring(0,8); 
} 
else 
{ 
    cusip = "000000cm"; 
} 

cusipList.Add(cusip); 
相關問題