2012-03-21 38 views
0

我有一個vb .net ArrayList,我想將其存儲在我的Ms SQL 2008數據庫的一個字段中。是否有可能把它作爲一個ArrayList放回去?在數據庫中存儲.Net ArrayList

我猜我需要分解數組如何並將其作爲字符串存儲,然後在讀回時重建它,因爲我沒有看到用於數組的sql的任何數據類型。對我來說,這是一個無賴!

任何人都可以建議最好的方法來做到這一點?

非常感謝。

edit - ArrayList存儲一組報價ID。沒有限制它有多大,所以它可以容納1或1001個不同的ID

+0

什麼是此ArrayList,因爲你使用的是內置的類型,但是這是一個需要注意的它可能不是你的情況適用? – Aliostad 2012-03-21 14:13:26

+0

@Aliostad我編輯了這個問題。它包含一組報價ID – 2012-03-21 14:17:12

回答

1

這可能是一對多關係的一部分。比如說你的ArrayList正在存儲字符串,然後創建一個單獨的表,其中的一個字段在這個字符串值中。您可以通過調用存儲proceedure發送ArrayList中的參數去你DALC類,並遍歷它在那裏,在一個時間到數據庫中添加一條記錄,等

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(); 

但也有一些警告:

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