源代码如下:  public void DB()
{
DataBBS bbs=new DataBBS();
DataTable dt=new DataTable();
string str="select topic,content from topic where tid="+int.Parse(Request.QueryString["id"].ToString())+"";
dt=bbs.ExeSqldt(str);
if(dt.Rows.Count>0)
{
this.TextBox1.Text=dt.Rows[0]["topic"].ToString();
byte [] b=((byte[])dt.Rows[0]["content"]);
MemoryStream ms=new MemoryStream(b);
Encoding en=Encoding.Unicode;
StringBuilder sb=new StringBuilder();
sb.Append(en.GetString(ms.ToArray()));
ms.Close();
                dt.Rows[0]["content"] = sb.ToString(); this.FreeTextBox1.Text = dt.Rows[0]["content"].ToString();
}
}        exception :值类型与列类型不匹配不能在 content 列中存储 <<P>跟贴吧!发言吧!申请吧!<BR>或发邮件给梁老师:[email protected].</P>>。所需类型是 Byte[]。

解决方案 »

  1.   

    dt.Rows[0]["content"] = Encoding.GetEncoding(936).GetBytes(sb.ToString());
      

  2.   

    如果你的content列是byte[]
    MemoryStream ms=new MemoryStream(b);
    //Encoding en=Encoding.Unicode;
    //StringBuilder sb=new StringBuilder();
    //sb.Append(en.GetString(ms.ToArray()));
    dt.Rows[0]["content"] = ms.ToArray();
      

  3.   

    能不能帮我修改成String  类型,不要改成byte[]。
      

  4.   

    那需要你修改数据库。或看你的DataTable如何创建的.