gpt4 book ai didi

c# - 将 C# 对象存储在 SQL Server 列中

转载 作者:行者123 更新时间:2023-12-03 03:50:45 26 4
gpt4 key购买 nike

我有一个 C# 类,用于存储数据(如结构)。它有子类作为成员,子类还有其他子类等。每个子类都包含数据(各种字符串、整数、 float 等)

有没有一种方法可以将这样的 C# 对象存储在数据库中的一列中?那是什么类型的色谱柱以及如何使用它?

我唯一能想到的就是使用算法将我的结构转换为字节序列并将其存储在二进制类型的字段中。

然后我将使用解码算法将其恢复并再次使其成为对象。

即便如此,C#中有这样的算法可以使用吗?

最佳答案

看到这个quetion如果您愿意,可以在 SQL Server 中使用 VARBINARY(MAX) 字段类型。您可以在其中存储任何类型的对象,最大大小为 2 GB。

要访问它,您可以使用 ADO.NET - 如下所示:

object yourMysteryObject = (whatever you like it to be);

MemoryStream memStream = new MemoryStream();
StreamWriter sw = new StreamWriter(memStm);

sw.Write(yourMysteryObject);

SqlCommand sqlCmd = new SqlCommand("INSERT INTO TableName(VarBinaryColumn) VALUES (@VarBinary)", sqlConnection);

sqlCmd.Parameters.Add("@VarBinary", SqlDbType.VarBinary, Int32.MaxValue);

sqlCmd.Parameters["@VarBinary"].Value = memStream.GetBuffer();

sqlCmd.ExecuteNonQuery();

关于c# - 将 C# 对象存储在 SQL Server 列中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14797834/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com