这是我的代码:
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循环时,它总是抛出空引用异常。我的代码出了什么问题?谢谢!
发布于 2012-08-15 03:11:22
在方法内部初始化quizList
quizList = new string[row.Length];然后运行循环。
在循环内部,quizList为null,并且您正在尝试访问它的索引。
所以你的函数应该是这样的
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-15 03:10:11
这意味着quizList为空。
发布于 2012-08-15 03:12:49
您正在尝试在初始化quizList之前访问它的索引。试着这样做:
quizList = new String[row.length];在你使用它之前。
https://stackoverflow.com/questions/11959112
复制相似问题