C# winform程序调试出错

privatevoidInitMenu(){navBar.Groups.Clear();table=User.CurrentUser.GetModel();if(tabl... private void InitMenu()
{
navBar.Groups.Clear();
table = User.CurrentUser.GetModel();
if (table == null || table.Rows.Count <= 0)
{
MessageBox.Show("加载数据时出错!", MsgTitle, MessageBoxButtons.OK, MessageBoxIcon.Error);
Application.Exit();
}
DataRow[] rows = table.Select("PCode=''");

foreach (DataRow row in rows)
{
NavBarGroup group = this.navBar.Groups.Add();

group.Caption = row["ModelName"].ToString(); DataRow[] subRows = table.Select("PCode='" + row[0].ToString() + "'");
foreach (DataRow subRow in subRows)
{
NavBarItem item = navBar.Items.Add();
item.Caption = subRow["ModelName"].ToString();
item.SmallImageIndex = 0;
item.Tag = subRow["ModelCode"];
group.ItemLinks.Add(item);
}
}
}

老是提示加载出错,,各位大侠帮我分析下是怎么回事,,小弟在这万分感谢!!!
展开
 我来答
Ps脸粉粉
2013-03-18 · TA获得超过1563个赞
知道小有建树答主
回答量:224
采纳率:0%
帮助的人:114万
展开全部
楼主你好:

你说的提示加载出错是下面这个弹出框弹出的错误吗?如果是这里弹出的“加载数据时出错!“,那么说明你的table里面没有数据。

if (table == null || table.Rows.Count <= 0)
{
MessageBox.Show("加载数据时出错!", MsgTitle, MessageBoxButtons.OK, MessageBoxIcon.Error);
Application.Exit();
}

另外你上面if里面的这种写法是不对的,如果table==null的话 table.Rows.Count <= 0必然会弹出”未将对象引用到实例“这个异常的,你应该写成:

if((table != null && table.Rows.Count <= 0)||table == null)

建议你还是调试一下吧,希望对你有帮助 望采纳,谢谢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
FabKiller
2013-03-18 · TA获得超过586个赞
知道小有建树答主
回答量:676
采纳率:0%
帮助的人:483万
展开全部
看了你的代码,我了解到应该是table = User.CurrentUser.GetModel();执行后,table为null导致

因此,需要你给出详细的User.CurrentUser.GetModel()的代码,才能帮助你进一步的查看问题。
追问

追答
详细查看了你的GetModel()的方法,我建议你在使用:
1.try...catch的时候,请将异常信息提示出来。这样,对于你报错后的判断,是有帮助的。
同时,我只能大致告知你一些可能引起错误的原因:
1.数据库是否可以正常的链接176.16.0.33呢?你可以Ping一下,或者使用sql的企业管理工具链接一下
2.你方法体中,是调用的存储过程,那么,这个存储过程,是否存在于PDMIS这个库中呢?
3.另外,你的两个存储过程:spGetModelByUser,spGetQueryModelByUser的参数有几个?是否为方法体中,写的username,还有editflag?
4.spGetModelByUser,spGetQueryModelByUser这两个存储过程,传入的参数类型,是否匹配?因为,你方法体里面,定义的,一个是varchar型,一个是bit型,如果bit型参数传入过长,或者特殊字符,那么,都将引起存储过程异常,导致返回Null
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友94f02eb
2013-03-18 · TA获得超过8613个赞
知道大有可为答主
回答量:7955
采纳率:74%
帮助的人:4495万
展开全部
table = User.CurrentUser.GetModel();
说明这里的 table 没有获取到数据
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式