首页 新闻 赞助 找找看

未将对象引用设置到对象的实例

0
悬赏园豆:10 [已解决问题] 解决于 2015-07-13 15:47
Operation op = new Operation();
    public string header = string.Empty;
    protected void Page_Load(object sender, EventArgs e)
    {
        DataTable dt = op.queryMenu();
        foreach (DataRow dr in dt.Rows)
        {
            header += "<a href='Category.aspx?menuID=" + dr["menuID"].ToString() + "' class='menu' target='_blank'>" + dr["menuTitle"].ToString() + "</a>";
        }
    }

 

源错误: 

行 9: {

行 10: DataTable dt = op.queryMenu();

行 11: foreach (System.Data.DataRow dr in dt.Rows)

行 12: {

行 13: header += "<a href='Category.aspx?menuID=" + dr["menuID"].ToString() + "' class='menu' target='_blank'>" + dr["menuTitle"].ToString() + "</a>";


源文件: d:\myweb\nc\webheader.ascx.cs    行: 11      

c#
老牛伏枥的主页 老牛伏枥 | 初学一级 | 园豆:143
提问于:2015-07-13 15:02
< >
分享
最佳答案
0
Operation op = new Operation();
public string header = string.Empty;
protected void Page_Load(object sender, EventArgs e) 
{
    DataTable dt = op.queryMenu();
    if (dt != null && dt.Rows.Count > 0) 
    {
        StringBuilder sbHeader = new  StringBuilder();
        foreach(DataRow dr in dt.Rows) 
        {
            string menuID = string.Empty, menuTitle = string.Empty;
            if (dr["menuID"] != null) 
            {
                menuID = dr["menuID"].ToString();
            }
            if (dr["menuTitle"] != null) 
            {
                menuTitle = dr["menuTitle"].ToString();
            }
            sbHeader.AppendFormat("<a href='Category.aspx?menuID={0}' class='menu' target='_blank'>{1}</a>", menuID, menuTitle);
        }
        
        header = sbHeader.ToString();
    }
}
收获园豆:10
liqipeng | 小虾三级 |园豆:1160 | 2015-07-13 15:27

谢谢

老牛伏枥 | 园豆:143 (初学一级) | 2015-07-13 15:48
其他回答(5)
0

有没有检查,dt是否是空的?

jackccc | 园豆:1341 (小虾三级) | 2015-07-13 15:08
0

空引用异常就是在异常的地方检查每个引用“.”是否为空 

吴瑞祥 | 园豆:29449 (高人七级) | 2015-07-13 15:17
0

dt是NULL或者dt中的某个字段。数据库里是NULL

离。 | 园豆:154 (初学一级) | 2015-07-13 15:27
0

DataTable加非空判断,取DataTable某列ToString()之前也要加非空判断

JeffWong | 园豆:2328 (老鸟四级) | 2015-07-13 15:29
0

先判断 dt.Rows.Count > 0 ? 然后再执行foreach循环

at小怪兽 | 园豆:760 (小虾三级) | 2015-07-13 15:32
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册