0

这是我的代码:

 private string[] quizList;

 public string[] getQuizList() 
 {    
     Databases.MoodleOCDataSetTableAdapters.QuizTableAdapter ta = new Databases.MoodleOCDataSetTableAdapters.QuizTableAdapter();
     Databases.MoodleOCDataSet.QuizDataTable table = new Databases.MoodleOCDataSet.QuizDataTable();
     ta.Fill(table);

     System.Data.DataRow[] row = table.Select("id > 0");

     for(int i = 0; i < row.Length; i++)    
         quizList[i] = row[i].ItemArray[2].ToString();

     return quizList;
 }

当我调试时,我可以看到表格中充满了数据,而行也充满了数据。但是当涉及到 for 循环时,它总是抛出空引用异常。我的代码有什么问题?谢谢!

4

3 回答 3

3

内部方法初始化quizList

quizList = new string[row.Length];

然后运行循环。

内部循环 quizList 为空,您正在尝试访问它的索引。

所以你的功能应该像

 private string[] quizList;

 public string[] getQuizList() 
 {    
     Databases.MoodleOCDataSetTableAdapters.QuizTableAdapter ta = new Databases.MoodleOCDataSetTableAdapters.QuizTableAdapter();
     Databases.MoodleOCDataSet.QuizDataTable table = new Databases.MoodleOCDataSet.QuizDataTable();
     ta.Fill(table);

     System.Data.DataRow[] row = table.Select("id > 0");

     quizList = new string[row.Length];

     for(int i = 0; i < row.Length; i++)    
         quizList[i] = row[i].ItemArray[2].ToString();

     return quizList;
 }
于 2012-08-14T19:11:22.497 回答
0

那意味着那quizList是空的。

于 2012-08-14T19:10:11.110 回答
0

您正在尝试在初始化之前访问 quizList 的索引。尝试做这样的事情:

quizList = new String[row.length];

在你使用它之前。

于 2012-08-14T19:12:49.153 回答