Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/sql-server-2008/3.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在数据库中存储json数据_C#_Sql Server 2008_Json.net - Fatal编程技术网

C# 使用C在数据库中存储json数据

C# 使用C在数据库中存储json数据,c#,sql-server-2008,json.net,C#,Sql Server 2008,Json.net,这是我在temp变量中得到的值,我想用一个附加列将此数据存储在数据库中,如下所示 temp= { "Vikas": 1, "Pravin": 2, "Akshay": 5, "Vijay": 3, "Prasad": 4 } 我试着进入C name rank createdby vikas 1 nitin pravin 2 nitin akshay

这是我在temp变量中得到的值,我想用一个附加列将此数据存储在数据库中,如下所示

temp= {
       "Vikas": 1,
       "Pravin": 2,
       "Akshay": 5,
       "Vijay": 3,
       "Prasad": 4 
      }
我试着进入C

name      rank   createdby
vikas      1       nitin
pravin     2       nitin
akshay     5       nitin
vijay      3       nitin
Prasad     4       nitin


Note:  name column is employee name so it is anything 
问题

1如何在C中获取此json数据并添加其他列


2是否可以在一个查询中使用多行插入来传递整个数据,而不是使用循环和插入单行

解释后编辑:

您可以通过以下方式将其反序列化到字典:

[System.Web.Services.WebMethod]
public static string setAnswer(string jsondata)
{
    List<string[]> data = JsonConvert.DeserializeObject<List<string[]>>(jsondata);
}
在这一点上,我们有数据字典。
如何将其保存到数据库取决于您访问数据库的方式

解释后编辑:

您可以通过以下方式将其反序列化到字典:

[System.Web.Services.WebMethod]
public static string setAnswer(string jsondata)
{
    List<string[]> data = JsonConvert.DeserializeObject<List<string[]>>(jsondata);
}
在这一点上,我们有数据字典。 如何将其保存到数据库取决于您访问数据库的方式

创建一个实体:MemberRank

然后在控制器中

public class MemberRank
{
    public int Id { get; set; }
    public string MemberName { get; set; }
    public int Rank{ get; set; }
    public string CreatedBy { get; set; }
}
创建一个实体:MemberRank

然后在控制器中

public class MemberRank
{
    public int Id { get; set; }
    public string MemberName { get; set; }
    public int Rank{ get; set; }
    public string CreatedBy { get; set; }
}

反序列化此内容的正确方法:

[
  {
     "memberName" : "Vikas",
     "rank" : 1
  },
  {
     "memberName" : "Pravin",
     "rank" : 2
  },
  {
     "memberName" : "Akshay",
     "rank" : 5
  },
  {
     "memberName" : "Vijay",
     "rank" : 3
  },
  {
     "memberName" : "Prasad",
     "rank" : 4
  }
]
就是将其反序列化到字典中

下面是一个例子:

哪些产出:


反序列化此内容的正确方法:

[
  {
     "memberName" : "Vikas",
     "rank" : 1
  },
  {
     "memberName" : "Pravin",
     "rank" : 2
  },
  {
     "memberName" : "Akshay",
     "rank" : 5
  },
  {
     "memberName" : "Vijay",
     "rank" : 3
  },
  {
     "memberName" : "Prasad",
     "rank" : 4
  }
]
就是将其反序列化到字典中

下面是一个例子:

哪些产出:



您使用什么类型的数据库访问?EF?阿多?取决于您使用的数据库。如果db允许,则插入其绝对可能。要向数组中添加行,您必须复制整个数组。升级到sql server 2016yes为避免for循环,您可以使用表值参数将列表转换为datatable检查此链接如果需要更多帮助,请告知我我假设temp=是指您有一个包含该内容的变量,这不是有效负载/字符串的一部分,因为这部分不是合法的json。您使用的是什么类型的db访问?EF?阿多?取决于您使用的数据库。如果db允许,则插入其绝对可能。要向数组中添加行,您必须复制整个数组。升级到sql server 2016yes为避免for循环,您可以使用表值参数将列表转换为datatable检查此链接如果需要更多帮助,请告知我我假设temp=是指您有一个包含该内容的变量,并不是说这是有效负载/字符串的一部分,因为这部分不是合法的json。谢谢回复,但不..不。。。这是员工的名字,所以我不能使它成为静态的,它可能是任何东西,所以这不可能使classA字符串到int的字典更合适,dictionary@Pravin你不这么说,这对解决问题非常重要。编辑问题并添加此信息。@LasseV.Karlsen使用此信息您是对的OK我将添加问题谢谢您的回复,但不..不。。。这是员工的名字,所以我不能使它成为静态的,它可能是任何东西,所以这不可能使classA字符串到int的字典更合适,dictionary@Pravin你不这么说,这对解决问题非常重要。编辑问题并添加此信息。@LasseV.Karlsen根据此信息您是对的OK我将添加问题您如何让Json.net将示例Json反序列化为您的MemberRank类型?您对EF有何疑问?我假设他正在使用EF,先生。您如何让Json.net将示例Json反序列化为您的MemberRank类型?您对EF有何疑问?我假设他正在使用EF,先生。
void Main()
{
    const string json = @"{
        ""Vikas"": 1,
        ""Pravin"": 2,
        ""Akshay"": 5,
        ""Vijay"": 3,
        ""Prasad"": 4
    }";
    Dictionary<string, int> empsAndNumbers =
        JsonConvert.DeserializeObject<Dictionary<string, int>>(json);
    empsAndNumbers.Dump();
}