未将对象引用到实例

Joke_yu 2009-12-10 09:42:39
List<ClassInfo> list = ViewState["classes"] as List<ClassInfo>;
ClassInfo c = null;
if (list==null|list.Count == 0)
{
ClassInfo cl1 = hf1.Value.ParseJSON<ClassInfo>();
c = new ClassInfo();
c.Code = cl1.Code;
c.ClassName = cl1.ClassName;
c.Classtype = cl1.Classtype;
c.TypeId = cl1.TypeId;
c.HGId = cl1.HGId;
c.IsDel = cl1.IsDel;
list.Add(c);
}

在做项目过程中,我定义了一个ViewState["classes"] ,并把他赋为空。但是运行到if (list==null|list.Count == 0)这一句的时候提示我未将对象引用到实例。我检查了很多遍,不知道哪里出错了。
以前判断的时候直接用if (list.Count == 0)就可以了,但是在这不行。。。
那个高手指点一下。在线等!
...全文
336 28 打赏 收藏 转发到动态 举报
写回复
用AI写文章
28 条回复
切换为时间正序
请发表友善的回复…
发表回复
hailiang31011 2009-12-10
  • 打赏
  • 举报
回复
数据库可以发过来不?
Joke_yu 2009-12-10
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 yanfei_519 的回复:]
引用 5 楼 ivws_19 的回复:
先判断if(list==null),再判断if(list.Count == 0)


是这样的!没错
[/Quote]
这个问题已经解决了,谢谢!
能不能耐心点帮我看看下面的问题?8楼的问题,18楼有代码!
yanfei_519 2009-12-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ivws_19 的回复:]
先判断if(list==null),再判断if(list.Count == 0)
[/Quote]

是这样的!没错
Joke_yu 2009-12-10
  • 打赏
  • 举报
回复
没人回了么?各位大虾帮帮忙吧!!!急
Joke_yu 2009-12-10
  • 打赏
  • 举报
回复
还有个问题。
protected void gvHGClass_SelectedIndexChanged(object sender, EventArgs e)
{
HiddenField hf1 = gvHGClass.SelectedRow.FindControl("HiddenField2") as HiddenField;
ddlClasstype.SelectedValue = hf1.Value;
}
也是提示我说未将对象引用到实例!这个怎么解决?
Joke_yu 2009-12-10
  • 打赏
  • 举报
回复
<asp:GridView ID="gvHGClass" runat="server" Width="100%"
AutoGenerateColumns="False" onrowdatabound="gvHGClass_RowDataBound"
onselectedindexchanged="gvHGClass_SelectedIndexChanged"
onrowcommand="gvHGClass_RowCommand" DataKeyNames="Code"
onrowdeleting="gvHGClass_RowDeleting" >
<Columns>
<asp:BoundField DataField="ClassName" HeaderText="班级名称">
<HeaderStyle HorizontalAlign="Center" />
<ItemStyle HorizontalAlign="Center" Width="39%" />
</asp:BoundField>
<asp:BoundField DataField="Classtype" HeaderText="班级类型">
<HeaderStyle HorizontalAlign="Center" />
<ItemStyle HorizontalAlign="Center" Width="20%" />
</asp:BoundField>
<asp:CommandField HeaderText="课程详情" SelectText="查看课程" ShowSelectButton="True" >
<HeaderStyle HorizontalAlign="Center" />
<ItemStyle HorizontalAlign="Center" Width="20%" />
</asp:CommandField>
<asp:CommandField HeaderText="删除班级" ShowDeleteButton="True" >
<HeaderStyle HorizontalAlign="Center" />
<ItemStyle HorizontalAlign="Center" Width="20%" />
</asp:CommandField>
<asp:TemplateField>
<AlternatingItemTemplate>
<asp:HiddenField ID="HiddenField2" runat="server" Value='<%# Eval("TypeId") %>' />
<asp:HiddenField ID="HiddenField1" runat="server" Value='<%# Eval("Code") %>' />
</AlternatingItemTemplate>
<ItemStyle HorizontalAlign="Center" Width="1%" />
</asp:TemplateField>
</Columns>
</asp:GridView>
-------------------------------------------------------------------------------
List<ClassInfo> list = ViewState["classes"] as List<ClassInfo>;
ClassInfo c = null;
if (list.Count == 0)
{
ClassInfo cl1 = hf1.Value.ParseJSON<ClassInfo>();
c = new ClassInfo();
c.Code = cl1.Code;
c.ClassName = cl1.ClassName;
c.Classtype = cl1.Classtype;
c.TypeId = cl1.TypeId;
c.HGId = cl1.HGId;
c.IsDel = cl1.IsDel;
list.Add(c);
}
else
{
ClassInfo cl2 = hf1.Value.ParseJSON<ClassInfo>();
c = new ClassInfo();
c.Code = cl2.Code;
c.ClassName = cl2.ClassName;
c.Classtype = cl2.Classtype;
c.TypeId = cl2.TypeId;
c.HGId = cl2.HGId;
c.IsDel = cl2.IsDel;
ClassInfo cs = list.Find(ee => ee.Code == c.Code);
if (cs == null)
{
list.Add(c);
}
}
gvHGClass.DataSource = list;
gvHGClass.DataBind();
ViewState["classes"] = list;
hf1.Value = "";
george010 2009-12-10
  • 打赏
  • 举报
回复
无语了,想不到其他的情况了,能否把页面gridview的那段和cs文件里绑定的那段代码都贴下?
Joke_yu 2009-12-10
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 george010 的回复:]
gridview的AutoGenerateColumns属性设了吗 ,如果设的是false 又没手动给gridview列的话也有可能会这样
[/Quote]
刚刚试过了,设不设置结果都是一样,不出来- -。
Joke_yu 2009-12-10
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 sammy_luo 的回复:]
if (list==null|list.Count == 0)
请不要用逻辑或,开始你的list就为null了,既然为null,那他何来Count;所以你list.Count的时候就未将
对象引用设置到对象的实例了
[/Quote]
这个问题解决了,实例化了范型的对象,判断它的count是否等于0就可以了!
if (list.Count == 0)
george010 2009-12-10
  • 打赏
  • 举报
回复
gridview的AutoGenerateColumns属性设了吗 ,如果设的是false 又没手动给gridview列的话也有可能会这样
  • 打赏
  • 举报
回复
if (list==null|list.Count == 0)
请不要用逻辑或,开始你的list就为null了,既然为null,那他何来Count;所以你list.Count的时候就未将
对象引用设置到对象的实例了
Joke_yu 2009-12-10
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 george010 的回复:]
gridview.databind()写了吗?
[/Quote]
昏迷,引用错误,引用自己的回复了- -。
写了
gvHGClass.DataSource = list;
gvHGClass.DataBind();
ViewState["classes"] = list;
郁闷了,就是没反应,数据都有!
Joke_yu 2009-12-10
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 joke_yu 的回复:]
试过了,在页面初始化的时候,
如果是新增的时候,
List <ClassInfo> list = new List <ClassInfo>();
,如果是修改
则List <ClassInfo> list = ViewState["classes"] as List <ClassInfo>;
这个问题解决了。谢谢各位!
但是新的问题又出来了,我把实体添加到范型里面去,绑定到GIRDVIEW控件上的时候没反应- -。
任何提示也没有,打断点看了,LIST里面有数据
[/Quote]
写了
gvHGClass.DataSource = list;
gvHGClass.DataBind();
ViewState["classes"] = list;
郁闷了,就是没反应,数据都有!
SouthFlier 2009-12-10
  • 打赏
  • 举报
回复
&(逻辑与) |(逻辑或) ------按位做运算
&&(条件与) ||(条件或) ------条件判断

george010 2009-12-10
  • 打赏
  • 举报
回复
gridview.databind()写了吗?
Joke_yu 2009-12-10
  • 打赏
  • 举报
回复
试过了,在页面初始化的时候,
如果是新增的时候,
List <ClassInfo> list = new List <ClassInfo>();
,如果是修改
则List <ClassInfo> list = ViewState["classes"] as List <ClassInfo>;
这个问题解决了。谢谢各位!
但是新的问题又出来了,我把实体添加到范型里面去,绑定到GIRDVIEW控件上的时候没反应- -。
任何提示也没有,打断点看了,LIST里面有数据
george010 2009-12-10
  • 打赏
  • 举报
回复
刚刚只看到了那句报空引用的if。。。。没仔细看 不好意思啊 想弥补下过失。。没想到已经被发现了。。
george010 2009-12-10
  • 打赏
  • 举报
回复
|的话前一句就算是ture也会走后一句,那么就是null.Count了 就是空引用 ||的话list如果是null就不走后面了还有如果是null的话要把list new出来 不然还是会空引用
ivws_19 2009-12-10
  • 打赏
  • 举报
回复
先判断if(list==null),再判断if(list.Count == 0)
fuda_1985 2009-12-10
  • 打赏
  • 举报
回复
...看二楼的。昏了。
加载更多回复(7)

62,264

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧