在数据库中存储.Net ArrayList

时间:2012-03-21 14:08:06

标签: asp.net sql vb.net

我有一个vb .net ArrayList,我想存储在Ms SQL 2008数据库的一个字段中。是否可以将其放入并作为ArrayList返回?

我猜我需要分解一些如何并将其存储为字符串,然后在读回时重建它,因为我没有看到用于数组的sql的任何数据类型。对我来说这真是太可惜了!

有人能建议最好的方法吗?

非常感谢。

edit - ArrayList存储一组引用ID。它的大小没有限制,因此它可以容纳1或1001个不同的ID

3 个答案:

答案 0 :(得分:1)

这可能是一对多关系的一部分。例如,您的ArrayList正在存储字符串,然后创建一个单独的表,其中一个字段在此字符串值中。您可以将ArrayList作为参数发送到DALC类并在那里循环,通过调用存储的进程等一次向DB添加一条记录。

答案 1 :(得分:0)

您可以使用序列化程序,例如

var serializer = new XmlSerializer(typeof(ArrayList));
var buffer = new StringBuilder();
using(var tw = new XmlTextWriter(new StringWriter(buffer)){
    serializer.serialize(tw, myArrayList);
}
var xml = buffer.ToString();

但是有一些警告:

答案 2 :(得分:0)

Dim no As Integer() = {11, 22, 33, 44}
        Dim MS As New System.IO.MemoryStream
        Dim bin As New System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
        bin.Serialize(MS, no)
        Dim bytes(MS.Length - 1) As Byte
        MS.Position = 0
        MS.Read(bytes, 0, bytes.Length)
        ....
        ...
        cmd.ComandText="insert into TableName values (@data)"
        cmd.Parameters.Add("@data", SqlDbType.Image, bytes.Length).Value = bytes

来源:http://www.daniweb.com/software-development/vbnet/threads/253410/save-array-to-database