none
VS2005中SQL字段是中文的时候出现空指针的问题。 RRS feed

  • 问题

  • 有个程序要用户输入菜单名,然后存入SQL的字段中,然后再网页中从SQL字段读出菜单名在动态的现实出来。这个程序在IE8下运行正常,在IE7下报错说是空指针异常,调试很久发现要是菜单名字是英文就可以要是中文就会报错。上一小段代码:
    下面的代码是从数据库中读出菜单名动态构建菜单,每个菜单最下面有4个菜单:图片,文档等。。。。,菜单点击链接并传值过去,在另一个页面接受传过去的t1,t2,t3的值。要是在IE7下并且菜单名字是中文的话点击就会报错。
        if (TreeView1.Nodes.Count == 0)//菜单为空才执行,避免重复添加菜单。
        {
          //添加根目录
          TreeNode tNode = new TreeNode("数据信息", "数据信息");
          this.TreeView1.Nodes.Add(tNode);
          tNode.CollapseAll();
          //添加一级菜单
          for(int i=0; i<ds.Tables[0].Rows.Count; i++)
          {
            if(ds.Tables[0].Rows[i]["did"].ToString()=="0")
            {
              TreeNode tNode1 = new TreeNode(ds.Tables[0].Rows[i]["name"].ToString(), ds.Tables[0].Rows[i]["name"].ToString());
              tNode.ChildNodes.Add(tNode1);
              tNode1.CollapseAll();
              //添加二级菜单
              for (int j = 0; j < ds.Tables[0].Rows.Count; j++)
              {
                if (ds.Tables[0].Rows[j]["did"].ToString() == ds.Tables[0].Rows[i]["id"].ToString())
                {
                  TreeNode tNode2 = new TreeNode(ds.Tables[0].Rows[j]["name"].ToString(), ds.Tables[0].Rows[j]["name"].ToString());
                  tNode1.ChildNodes.Add(tNode2);
                  tNode2.CollapseAll();
                  //添加三级菜单
                  TreeNode Node1 = new TreeNode("图片","图片");
                  tNode2.ChildNodes.Add(Node1);
                  Node1.NavigateUrl = "YHXS.aspx?t1=" + ds.Tables[0].Rows[i]["name"].ToString() + "&t2=" + ds.Tables[0].Rows[j]["name"].ToString() + "&t3=图片";
                  Node1.Target = "dmMain";
    
                  TreeNode Node2 = new TreeNode("文档", "文档");
                  tNode2.ChildNodes.Add(Node2);
                  Node2.NavigateUrl = "YHXS.aspx?t1=" + ds.Tables[0].Rows[i]["name"].ToString() + "&t2=" + ds.Tables[0].Rows[j]["name"].ToString() + "&t3=文档";
                  Node2.Target = "dmMain";
    
                  TreeNode Node3 = new TreeNode("音频", "音频");
                  tNode2.ChildNodes.Add(Node3);
                  Node3.NavigateUrl = "YHXS.aspx?t1=" + ds.Tables[0].Rows[i]["name"].ToString() + "&t2=" + ds.Tables[0].Rows[j]["name"].ToString() + "&t3=音频";
                  Node3.Target = "dmMain";
    
                  TreeNode Node4 = new TreeNode("视频", "视频");
                  tNode2.ChildNodes.Add(Node4);
                  Node4.NavigateUrl = "YHXS.aspx?t1=" + ds.Tables[0].Rows[i]["name"].ToString() + "&t2=" + ds.Tables[0].Rows[j]["name"].ToString() + "&t3=视频";
                  Node4.Target = "dmMain";
    
                }
              }
            }
          }
        }
    
    2010年8月31日 9:17

答案

全部回复