我将一个写好的string的字符串,通过Encoding.ASCII.GetBytes(str)转换为二进制存入到数据库,
数据库的响应字段写着<二进制字符串>疑问一:我打开那个字段却显示0x3C3F78。这是十六进制的吧?
然后我从数据库中读出来
byte[] xmlbyte = pattable.PolicyContent;
            string sb = Encoding.Unicode.GetString(xmlbyte);疑问二:sb不返回原来的字符串,却返回一个System.Byte[]这几个字。求解,帮我把原来的字符串还原出来

解决方案 »

  1.   


    代码是这样的
    Sql.Add("@PolicyContent",SqlDbType.Image,M.PolicyContent);
    ALTER Procedure [dbo].[PatchPolicyTable_Insert]
    @id nvarchar(50),
    @PolicyName nvarchar(50),
    @EffectDate datetime,
    @PolicyType tinyint,
    @Description nvarchar(200),
    @PolicyContent image
    AS
    Insert Into [dbo].[PatchPolicyTable] 
    (
    [id],
    [PolicyName],
    [EffectDate],
    [PolicyType],
    [Description],
    [PolicyContent]

    Values 
    (
    @id,
    @PolicyName,
    @EffectDate,
    @PolicyType,
    @Description,
    @PolicyContent
    )
      

  2.   

    使用FileStream流读取byte[] ,然后存数据库
      

  3.   

    好像不行能不能给个byte[]转为文件流存入数据库的范例
      

  4.   


    private string strTextTostrBin(string strText)
      {
       byte[] bytearr=null;   string stringtobin="";
       System.Text.Encoding encoding = System.Text.Encoding.UTF8;
       bytearr=encoding.GetBytes(strText);   for(int i=0;i<bytearr.Length;i++)
       {
        stringtobin+=","+bytearr[i].ToString();
       }
       return stringtobin.Substring(1);
      
      }  private string strBinTostrText(string strBin)
      {
       string [] bintostr=strBin.Split(',');
       Array binArray=Array.CreateInstance(Type.GetType("System.Byte"),bintostr.Length);
       for(int i=binArray.GetLowerBound(0);i<=binArray.GetUpperBound(0);i++)
       {
        binArray.SetValue(byte.Parse(bintostr[i]+""),i);
       }
       
       byte[] strtobin=new byte[bintostr.Length];
       for(int i=binArray.GetLowerBound(0);i<=binArray.GetUpperBound(0);i++)
       {
        strtobin[i]=(byte)binArray.GetValue(i);
       }
       System.Text.Encoding encoding = System.Text.Encoding.UTF8;
       return encoding.GetString(strtobin); 
      }
      

  5.   

    getstring(byte[])
    不知道楼主什么意思