none
ArrayListオブジェクトをDBのvarbinaryカラムに挿入したい RRS feed

  • 質問

  • ArrayListオブジェクトをSqlServerのvarbinaryカラムに挿入したいのですが、

    ArrayListオブジェクトをバイト配列にするにはどのようにすればよいでしょうか?

     

    2007年6月26日 23:44

回答

  • とりあえず思いつきで。

    ArrayList の要素に何を入れているかに依りますが、シリアル化可能クラスのオブジェクトが要素ならば以下のようにし、得られたバイト配列を格納すればいけると思います。
    復元したい場合は逆の手順で。

    以下は、整数を要素に持つ ArrayList の例です。

    Code Snippet

     

    System.Collections.ArrayList list = new System.Collections.ArrayList();
    list.Add(1);
    list.Add(2);

    using(System.IO.MemoryStream s = new System.IO.MemoryStream())
    {
     System.Runtime.Serialization.Formatters.Binary.BinaryFormatter f = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
     f.Serialize(s, list);
     s.Position = 0;
     using(System.IO.BinaryReader r = new System.IO.BinaryReader(s))
     {
      byte[] b = r.ReadBytes((int)s.Length);
     }
    }

     

     

    2007年6月27日 1:22

すべての返信

  • とりあえず思いつきで。

    ArrayList の要素に何を入れているかに依りますが、シリアル化可能クラスのオブジェクトが要素ならば以下のようにし、得られたバイト配列を格納すればいけると思います。
    復元したい場合は逆の手順で。

    以下は、整数を要素に持つ ArrayList の例です。

    Code Snippet

     

    System.Collections.ArrayList list = new System.Collections.ArrayList();
    list.Add(1);
    list.Add(2);

    using(System.IO.MemoryStream s = new System.IO.MemoryStream())
    {
     System.Runtime.Serialization.Formatters.Binary.BinaryFormatter f = new System.Runtime.Serialization.Formatters.Binary.BinaryFormatter();
     f.Serialize(s, list);
     s.Position = 0;
     using(System.IO.BinaryReader r = new System.IO.BinaryReader(s))
     {
      byte[] b = r.ReadBytes((int)s.Length);
     }
    }

     

     

    2007年6月27日 1:22
  • 教えていただきました方法で解決しました!

    ありがとうございました。

    2007年6月29日 9:38