ç

2012-03-14 37 views
0

我使用Asp.net/C##數組訪問的問題,,我已經宣佈的integerarray如下public int[] recno; 因爲我不知道array的確切大小,,但是一個function內我得到基礎上的數量以瞭解它的大小customer_id's在table.Here是functionç

public void GetRecordNo() 
     { 
      recid = from id in dt.cust_masters 
        select id; 
      recno = new int[recid.Count()]; 

      for (int i = 0; i < recid.Count(); i++) 
      { 
       recno[i] = Convert.ToInt32(recid.ElementAt(i).customer_id); 
      } 

     } 

當我嘗試調用一個函數ShowRecord(int index)它接受顧客的id以下面的方式

ShowRecord(recno[0]) 

它給了我一個錯誤

Object reference not set to an instance of an object. 

任何人都可以點我在哪裏,我要去錯了。 感謝

+0

你肯定有你的查詢返回VALU ES? – Maheep 2012-03-14 09:01:03

+0

嘗試使用「from cust from dt.cust_masters select cust.id;」 – Maheep 2012-03-14 09:01:40

+0

@Maheep它的返回值,因爲當我調用函數ShowRecord()該函數內部它工作得很好.. – freebird 2012-03-14 09:06:14

回答

3

您可以簡化代碼:

recid = from id in dt.cust_masters 
      select id.customer_id; 

//recno = new int[recid.Count()]; 
recno = recid.ToArray(); 
// remove for-loop 

,並找到/防止你的空裁判問題:

void ShowRecord(int index) 
{ 
    if (index < 0 || index >= recno.Length) 
     throw new InvalidArgumentException("index"); 

    var id = recno[index]; 
    ... 
} 
+0

,,,,但會允許我訪問該功能 – freebird 2012-03-14 09:10:34

+0

這取決於如何'public' /'private'你做'RECNO []'外RECNO的值。不是這種方法。但是真正的問題是什麼? – 2012-03-14 09:13:51

+0

,,我已經公開,我的問題是我需要將數組的值作爲參數傳遞給ShowRecord()函數。 – freebird 2012-03-14 09:15:25

3

爲什麼你只需要使用:

public void GetRecordNo() 
{ 
    var recno=(
     from id in dt.cust_masters 
     select id.customer_id 
    ).ToArray(); 
} 
+0

然後我如何通過ID對我的功能 – freebird 2012-03-14 09:14:04

1

第一通過設置斷點並懸停在參數recno上來檢查哪個對象爲空。它是否爲空?如果是,請確保您的GetRecordNo()方法在調用ShowRecord之前實際被調用。

或者使用它來訪問RECNO:

public int[] RecNo { 
    get { 
     if (recno == null) { GetRecNo(); } 
     return recno; 
    } 
} 

,然後使用它像

ShowRecord(RecNo[0]) 
+0

,,我負載和IM上的按鈕的點擊呼叫ShowRecord調用GetRecordNo(),你覺得這可能是問題。 – freebird 2012-03-14 09:19:19

+0

的問題是,你究竟是什麼指出了,,,我打電話給GetRecordNo(),然後ShowRecord(),,它工作得很好,,,等會我要再次ň再次調用...謝謝 – freebird 2012-03-14 09:26:39

+1

@freebird也許你正在訪問一個局部變量而不是你的公共領域?我編輯了我的帖子,也許有幫助。 – Botz3000 2012-03-14 09:26:41

0

我認爲,ShowRecord(int index)包含參數,其中包括INT指數,但是當你調用函數,你是使用ShowRecord(recno[0])這意味着你逝去recno紀錄index 0 .......