Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/264.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用C将字典保存到数据库中?_C#_.net_Relational Database - Fatal编程技术网

C# 如何使用C将字典保存到数据库中?

C# 如何使用C将字典保存到数据库中?,c#,.net,relational-database,C#,.net,Relational Database,我一直在使用以下方法将词典保存到数据库中: 将字典转换为XML。 将此XML传递给SPStored过程。 在SP使用中: Select Key1, Value1 into #TempTable FROM OPENXML(@handle, '//ValueSet/Values', 1) WITH (

我一直在使用以下方法将词典保存到数据库中:

将字典转换为XML。 将此XML传递给SPStored过程。 在SP使用中:

Select 
    Key1,                   
    Value1
into #TempTable                                      
FROM OPENXML(@handle, '//ValueSet/Values', 1)
WITH 
(                                  
  key1 VARCHAR(MAX),     
  value1 varchar(100)  
)
完成了

有没有一种方法可以将字典保存到数据库而不将其转换为XML?

序列化字典并存储二进制数据

然后将数据反序列化回字典


使用foreach语句在字典中循环。

这取决于。。。 您希望存储数据:实现和性能方面最快的方法是通过二进制序列化。但是,使用select无法读取数据,需要读取数据的每个应用程序都必须使用相同的序列化(如果数据以相同的技术/语言存在)。在我看来,它打破了存储在SQL数据库中的目的

您希望数据能够被人类读取:XML是一种选项,虽然速度不太快,读取起来有点困难,但仍然无法查询。然而,它的实现速度相当快。您还可以将结果转储到一个文件中,该文件仍然可读。此外,您可以与其他应用程序共享数据,因为XML是一种广泛使用的格式

您希望数据可以查询。根据您的方式,实现起来可能不那么容易。您需要两个表,一个用于键,一个用于值。然后,您可以编写自己的自定义映射代码来将列映射到属性,也可以使用框架将对象映射到表,如或


虽然Entity或NHibernate对于一个小问题来说似乎有点大,但在其中建立一些专业知识总是很有趣的,因为内部概念是可重用的,一旦你有了工作设置,它可以真正加快开发速度。

只需将键和值保存到数据库表中相应的列中即可。字典中有什么?Key-string和Value-string创建一个包含Key和Value列的表怎么样?@NedStoyanov如果我循环字典并在Sp中为每个Key-Value对传递参数是否有效?您可以将所有键和值的列表传递给Sp,看到了吗?我不这么认为。