C# 如何插入列表<;字符串>;是否将SQL Server表作为对象导入?

C# 如何插入列表<;字符串>;是否将SQL Server表作为对象导入?,c#,list,sql-server-2005,C#,List,Sql Server 2005,我创建并使用一个数据表,其中有一列通过 test_dt.Columns.Add("list_paragraphs", typeof(List<string>)); test_dt.Columns.Add(“列出段落”,typeof(列表)); 这样,我只需要一行来保存List对象,该对象有许多字符串项 有没有一种方法可以为Microsoft SQL Server 2005执行此操作 如果可用,列的大小限制为4000(varchar)?或者足够像datatable 我已经搜索了几个

我创建并使用一个数据表,其中有一列通过

test_dt.Columns.Add("list_paragraphs", typeof(List<string>));
test_dt.Columns.Add(“列出段落”,typeof(列表));
这样,我只需要一行来保存
List
对象,该对象有许多字符串项

有没有一种方法可以为Microsoft SQL Server 2005执行此操作

如果可用,列的大小限制为4000(
varchar
)?或者足够像datatable


我已经搜索了几个小时,但是只有一些线程在讨论如何逐行插入带有循环的列表。

你有几种选择来存储你的数据,但更重要的是,问题是:你打算怎么做?

您可能会阅读以找到一些一般性提示,在这种情况下,将多个值存储为一个值可能是一个好主意—以及您应该避免这种情况的时间

你可以

  • 使用一些分隔符并将所有值存储为CSV
    • 贮存紧张
    • 读起来很糟糕
  • 使用一些常见格式,如XML或JSON(v2005不支持)
    • 储藏比较紧
    • 读起来更好,但仍然笨拙
  • 使用相关的边表,将值与外键约束逐个存储在一起
    • 存储时的一小部分开销
    • 但是,几乎可以肯定在你的情况下,最好的方式
我从SQL专家那里学到的一个明显的事实是,没有方便的方法


不,方便的方法是相关表格。任何其他方法都应该有很好的理由这样做。

是否希望在一个SQL列中包含整个列表内容?@styx,是的,仅在一列中,行中。它可以方便地在DataTable中使用。您可以将其编码为CSV,然后从数据库中读取后将其解码回来。@ZoranHorvat,谢谢您的建议。我知道一些保存为xml的方法,但我怀疑是否有像datatable这样直接、方便的方法。您也可以使用blob,但您确定要这样做吗?这是对第一范式的反对。非常感谢您的支持!我已经决定使用xml。我还在有用的链接中表示感谢。:)