我有一个vb .net ArrayList,我想存储在Ms SQL 2008数据库的一个字段中。是否可以将其放入并作为ArrayList返回?
我猜我需要分解一些如何并将其存储为字符串,然后在读回时重建它,因为我没有看到用于数组的sql的任何数据类型。对我来说这真是太可惜了!
有人能建议最好的方法吗?
非常感谢。
edit - ArrayList存储一组引用ID。它的大小没有限制,因此它可以容纳1或1001个不同的ID
答案 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