for(int i=0;i<dt1.Rows.Count;i++)
{
byte [] b=((byte[])dt1.Rows[i]["content"]);
MemoryStream ms=new MemoryStream(b);
Encoding en=Encoding.Unicode;
StringBuilder sb=new StringBuilder();
sb.Append(en.GetString(ms.ToArray()));
ms.Close();
string content = Server.HtmlDecode(sb.ToString());
content = content.Replace("<IMG","#$");
content = content.Replace("<P>","@#");
content = content.Replace("</P>","#*");
content = content.Replace("<FONT","zhiti");
content = content.Replace("</FONT>","zhiti1");
content = content.Replace("<BR>","huanhuang");
content  = content.Replace("<","&lt");
content = content.Replace("#$","<IMG");
content = content.Replace("@#","<P>");
content = content.Replace("#*","</P>");
content = content.Replace("<BR>","\r\n");
content = content.Replace("zhiti","<FONT");
content = content.Replace("zhiti1","</FONT>");
content = content.Replace("huanhuang","<BR>");
dt1.Rows[i]["content"] = content.ToString();
最后一句出错了,
     exception如下:值类型与列类型不匹配不能在 content 列中存储 <新生快来报到吧!!!>。所需类型是 Byte[]。

解决方案 »

  1.   

    类型出错 那你就转一下类型 把string类型专程二进制
      

  2.   

    能不能把  byte类型  帮我改成  string  类型  谢谢了 !
      

  3.   

    方法1: dt1.Rows[i]["content"] = en.GetBytes(content.ToString());方法2: 再加一列,原来的content不要碰了。
            // 在循环外加上
            dt1.Columns.Add("strContent", typeof(string));
            
           for(...)
           {
               dt1.Rows[i]["strContent"] = content.ToString();
           }
            
      

  4.   

    最后一句:
    dt1.Rows[i]["content"] = Convert.FromBase64String(content.ToString())
      

  5.   

    字符串转换为字节数组 byte[] buf = System.Text.Encoding.Default.GetBytes(_StrValue);
    字节数组转换为字符串: _StrValue = System.Text.Encoding.Default.GetString(buf);
      

  6.   

    5 楼   改了之后还是有问题呀
         exception  :Base-64 字符串中的无效字符。