没看到“这是i=1时doc的值”
你确定
string doc = Encrypt.AESDecrypt(doc1);
得到的doc 是可见字符串?
  
*****************************************************************************
签名档: http://feiyun0112.cnblogs.com/

解决方案 »

  1.   

    抱歉,写的有些乱.doc的确是可见的,i=1时doc的值在第三张图上,i=0时doc的值在第一张图上,两个值在时间上有所区别
      

  2.   

    把 Console.WriteLine(sb.ToString());去掉试一试,印象中ToString调用后就不能修改stringbuilder了。
      

  3.   


    写了点代码测试下,调用ToString()不会影响            StringBuilder sb = new StringBuilder();
                sb.Append("aaaaaa");
                string res = sb.ToString();            sb.Append("bbbbbb");
                res = sb.ToString();
      

  4.   

    或者你的 Rows[i]["Msg"].ToString() 有问题,或者你的 Encrypt.AESDecrypt有问题。下边显示abcde这个结果,一点问题都没有。using (DataTable  dt = new DataTable ())
            {
                dt.Columns.Add("ID", typeof(int));
                dt.Columns.Add("Msg", typeof(string));
                dt.Rows.Add(1, "a");
                dt.Rows.Add(2, "b");
                dt.Rows.Add(3, "c");
                dt.Rows.Add(4, "d");
                dt.Rows.Add(5, "e"); 
                System.Text.StringBuilder sb = new System.Text.StringBuilder();
                for (int i = 0; i < dt.Rows.Count; i++)
                {
                    string doc1 = dt.Rows[i]["Msg"].ToString();
                    //string doc = Encrypt.AESDecrypt(doc1);
                    sb.Append(doc1);
                  //  Console.WriteLine(sb.ToString());
                }
                Label1.Text  = sb.ToString();
            }
      

  5.   

    可能<br>后面还有什么不可见特殊字符,你看看sb.tostring().length和显示的长度是不是一样
      

  6.   

    doc每次的结果在监视器里看都是正常的,但就是无法append进去.
      

  7.   

    这是append之后doc和sb的长度.另外,刚刚发现<br>后面有许多\0这个应该不会影响吧
      

  8.   

    解决了,还真是\0的问题stringbuilder以\0分割...