【发布时间】:2011-12-02 08:47:11
【问题描述】:
我正在尝试从数据表中填充列表视图,但是当我运行代码时收到一个我无法弄清楚的奇怪错误。
代码:
DataTable allTracks = tracks.getByMedia();
for (int i = 0; i < allTracks.Rows.Count; i++) {
DataRow r = allTracks.Rows[i];
ListViewItem lvi = new ListViewItem();
lvi.Text = r["track_number"].ToString();
lvi.SubItems.Add(r["track_name"].ToString());
lvTracks.Items.Add(lvi);
}
错误:
Object reference not set to an instance of an object.
程序认为 lvi 变量未设置或为空,但是当我进入调试模式时,我可以看到 lvi 已明确初始化并设置并且包含
right text + sub item . :S
如果我把这个代替
lvTracks.Items.Add(lvi);
Messagebox.Show(lvi.Text)
显示正确的值,不会触发错误......
【问题讨论】:
-
当你在调试代码时,究竟是在哪一行代码出现了这个错误?
-
不确定是不是这样,但您可能想尝试一个 foreach 循环 - foreach (DataRow r in allTracks.Rows)。这将节省一些潜在的错误空间。
-
我发现了错误,似乎 lvTracks 还没有初始化 :(dooo!代码正在运行;)