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);
}
}
}
老是提示加载出错,,各位大侠帮我分析下是怎么回事,,小弟在这万分感谢!!! 展开
{
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);
}
}
}
老是提示加载出错,,各位大侠帮我分析下是怎么回事,,小弟在这万分感谢!!! 展开
3个回答
展开全部
楼主你好:
你说的提示加载出错是下面这个弹出框弹出的错误吗?如果是这里弹出的“加载数据时出错!“,那么说明你的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)
建议你还是调试一下吧,希望对你有帮助 望采纳,谢谢
你说的提示加载出错是下面这个弹出框弹出的错误吗?如果是这里弹出的“加载数据时出错!“,那么说明你的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)
建议你还是调试一下吧,希望对你有帮助 望采纳,谢谢
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
看了你的代码,我了解到应该是table = User.CurrentUser.GetModel();执行后,table为null导致
因此,需要你给出详细的User.CurrentUser.GetModel()的代码,才能帮助你进一步的查看问题。
因此,需要你给出详细的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
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
table = User.CurrentUser.GetModel();
说明这里的 table 没有获取到数据
说明这里的 table 没有获取到数据
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询