【发布时间】:2012-10-12 07:03:01
【问题描述】:
我经常收到此错误,但并非每次都出现。
Object reference not set to an instance of an object.
我正在使用以下代码:
Category n = new Category {
ID = id,
name = TxtName.Text,
TopNav = Convert.ToInt32(Chk_Top.SelectedItem.Value),
LeftNav = Convert.ToByte(Chk_Left.Checked ? "1" : "0"),
Active = Convert.ToByte(Chk_Active.Checked ? "1" : "0"),
Rank = Convert.ToInt32(Txt_position.Text),
ParentID = pid,
Image = name,
Content = Content.Text,
PageTitle = Txt_SpeakerTitle.Text,
PageName = Txt_SpeakerTitle.Text,
speakerpreview = Txt_Previewdesc.Text,
PageDesc = Txt_SpeakerTitle.Text,
PageKeyword = Txt_SpeakerTitle.Text,
Filehandler = "speaker",
SpeakerDetail = speakerdesc.Text,
SpeakerTitle = Txt_SpeakerTitle.Text,
SpotLightdesc = spotlightcontent.Text,
Chk_Spot = Convert.ToByte(Chk_Spot.Checked ? "1" : "0"),
Catalogue = Catalogue };
db.Categories.InsertOnSubmit(n);
请提出建议。提前致谢。
【问题讨论】:
-
您的代码中有一些内容为空。调试并观察你的属性和对象,直到你找到一个为空的。
-
你在哪条线上?这意味着您设置的这些值之一经常为空,因此您失败了。现在我们可以告诉您它是哪一个。
-
出于调试目的,删除简洁的对象初始化,即分别设置每个属性。然后你可以看到它中断的那一行。
-
'Chk_Top.SelectedItem.Value' 可能是罪魁祸首,但正如 bittech 所建议的,调试器应该有助于分析错误。
-
Chk_Top.SelectedItem 经常为空,但并非每次都为空:)