Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/73.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
Javascript 以JSON格式从SQL检索多个记录集_Javascript_Sql_Axios_Asp.net Web Api2 - Fatal编程技术网

Javascript 以JSON格式从SQL检索多个记录集

Javascript 以JSON格式从SQL检索多个记录集,javascript,sql,axios,asp.net-web-api2,Javascript,Sql,Axios,Asp.net Web Api2,我使用的是SQL 2016,但我使用Newtonsoft.JSON编写JSON,因为wep api使用的是SQL 2012。我需要在Vue应用程序中使用javascript和Axio提取两个记录集。我的Web API当前正在运行 writer.WriteStartArray() While reader.Read writer.WriteStartObject()

我使用的是SQL 2016,但我使用Newtonsoft.JSON编写JSON,因为wep api使用的是SQL 2012。我需要在Vue应用程序中使用javascript和Axio提取两个记录集。我的Web API当前正在运行

                    writer.WriteStartArray()
                    While reader.Read
                    writer.WriteStartObject()
                    writer.WritePropertyName("dbid")
                    writer.WriteValue(reader("dbid").ToString)

                    writer.WritePropertyName("memberID")
                    writer.WriteValue(reader("memberID").ToString)

                    writer.WriteEndObject()
                    End While
                    reader.NextResult()

                    writer.WriteEndArray()
                    writer.WriteStartArray()

                    While reader.Read
                    writer.WriteStartObject()
                    writer.WritePropertyName("ProgramCode")
                    writer.WriteValue(reader("ProgramCode").ToString)

                    writer.WritePropertyName("ProgramName")
                    writer.WriteValue(reader("ProgramName").ToString)

                    writer.WriteEndObject()
                   End While

                  writer.Close() 
我的输出是

[{\"dbid\":\"100\",\"memberID\":\"1640\"},{\"dbid\":\"100\",\"memberID\":\"1641\"}][{\"ProgramCode\":\"CC\",\"Color\":\"Blue\"},{\"ProgramCode\":\"CB\",\"Color\":\"Green\"}]"
当我一次只通过一个记录集时,我会

           this.$axios
    .get(
      "https://restapi2.azurewebsites.net/api/GetMembers/" +
        dbid
    )
    .then(res => {
       let result = JSON.parse(res.data);
这很好,我会对数据库进行两次单独的调用,但似乎我不能同时解析两个数组。我试过了

         let results = res.data[0];
         let result =  = JSON.parse(results[0]);
我做错了吗?我希望只对数据库进行一次调用,并在应用程序中设置两个不同的值数组

让我试着用不同的方式来解释这一点


我有一个Vue.js应用程序,需要用SQL server中的数据填充2个不同的阵列。我可以用单独的ajax/axios调用填充阵列,但我想做的是使用一个服务器调用并将客户端的数据拆分到不同的阵列。一个数组保存员工数据,另一个保存管理数据。完全没有关系。如果我在使用.NET应用程序,我只会将记录集作为datareader进行拉取,然后执行readNext。

我不完全理解您得到的API调用的结果,但这里有一种方法可以从一个数据集中填充两个不同的值数组:

const data = [{name: "A", amount: 3}, {name: "B", amount: 12}, , {name: "C", amount: 1}];
let names = [];
let amounts = [];
data.forEach(function(d) {
  names.push(d.name);
  amounts.push(d.amount);
});
如果您有两个相同长度(和顺序)的数据集,并且想要设置两个不同的数组,那么有一种方法:

const dataOne = [{name: "A"}, {name: "B"}, {name: "C"}];
const dataTwo = [{amount: 3}, {amount: 12}, {amount: 1}];
let names = [];
let amounts = [];
dataOne.forEach(function(d, idx) {
  names[idx] = d.name;
  amounts[idx] = dataTwo[idx].amount;
});

我想出了一个解决方案,但男孩真的很糟糕,我真的希望有一个更专业的解决方案

            let results = res.data.split("]");

             for (let i = 0; i < results.length; i++) {
             if (results[i].endsWith("]") == false) {
             results[i] = results[i] + "]";
             alert(results[i]); //for testing
             }
            }
let results=res.data.split(“]);
for(设i=0;i
首先我在“]”上拆分,它是结束每个数组的分隔符,然后通过添加结束的数组括号分别处理每个数组

谢谢--但是我在一个SQL查询中提取了两个不同的数据集,我想在一个调用中将它们传递给客户端,并在客户端解析它们。