我已经在这里查看了可能的答案(对于PHP,我认为):http://www.lateralcode.com/store-array-database/但是我无法找到序列化/反序列化的C#.net版本。
这是否与我上面链接中显示的方式相同,或者在给定环境的情况下,我应该使用完全不同的方法吗?
我只是不想为我的9个不同数组中的每一个中的12个值中的每一个都有一堆不同的列,所以如果有另一种方法来实现这一点(转换为byte []等)我我非常愿意听到它。
如果它有帮助,那么数组将是简单的string []数组。
答案 0 :(得分:8)
将您的字符串数组转换为单个字符串,如下所示:
var a = String.Join(",",arrays);
//or aim is to provide a unique separator,
//i.e which won't be the part of string values itself.
var a= String.Join("~~",arrays);
然后像这样取回来:
var arr = a.Split(',');
//or split via multiple character
var arr = a.Split(new string[] { "~~" }, StringSplitOptions.None);
答案 1 :(得分:1)
尝试使用此序列化数组并在Blob类型的数据库中创建一个列来存储字节数组。
序列化:
if(array == null)
return null;
BinaryFormatter bf = new BinaryFormatter();
MemoryStream ms = new MemoryStream();
bf.Serialize(ms, array);
反序列化:
String[] array = new String[10];
BinaryFormatter bf = new BinaryFormatter();
ms.Position = 0;
array = (String[])bf.Deserialize(ms);
答案 2 :(得分:1)
我只是不希望每个都有一堆不同的列 我的9个不同阵列中的每一个都有12个值,所以如果还有另一个 实现这一目标的方法(转换为byte []等)我不止于此 我愿意听。
从上面的描述中,看起来您正在使用RDBMS。
您希望在单个列中存储多个值的事实会让设计出现问题。
我同意,拥有单独的列可能不是可行的方法,特别是如果将来每个数组中的项目数可能会发生变化。
考虑将这些数据分成一个单独的表,并使用原始表与外键关系进行1对多映射