我有一个vb.net表单,可以接受来自用户的大约50个输入。我需要能够获取该信息并将其存储到数据库中。来自PHP背景我查看了序列化多维数组并将所有字段存储到单个db列中,而不是创建50个db列。
我已成功序列化了字段的arrayList,并且能够将其序列化并反序列化为arrayList。
Public Function SerializeArraylist(ByVal arraylst As ArrayList) As String
Dim bf As New Runtime.Serialization.Formatters.Binary.BinaryFormatter
Dim mem As New IO.MemoryStream
bf.Serialize(mem, arraylst)
Return Convert.ToBase64String(mem.ToArray())
End Function
'Deserialize
Public Function DeserializeArraylist(ByVal arraystring As String) As ArrayList
Dim bf As New Runtime.Serialization.Formatters.Binary.BinaryFormatter
Dim mem As New IO.MemoryStream(Convert.FromBase64String(arraystring))
Return DirectCast(bf.Deserialize(mem), ArrayList)
End Function
但是我看到了一些重大问题。其中一个非常混乱,并且将信息存储在多维数组中以更好地组织数据会更有意义。我环顾四周,无法找到解决方案。有这个主题:What Class for Serializable Multidimensional Arrays?但我似乎无法将它应用于我的情况。
总而言之,我的最终目标是序列化一个多维数组,我可以存储在数据库中,然后在后面对其进行反序列化。然而,如果有更好的方法来处理这个问题,我总是愿意尝试不同的东西!
答案 0 :(得分:1)
将所有数据分组到一个列中会非常糟糕。这是使用数据库的错误方法。你真的想要多个表。我们没有完整的截图,但从我们看到的,你需要这样的东西: