以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  返回ID最大值最为参数继续查询  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=140943)

--  作者:fubblyc
--  发布时间:2019/9/17 22:53:00
--  返回ID最大值最为参数继续查询
老师:

dim pageIndex as Integer = 0
    Dim hc As New HttpClient("https://vpm:89/api/pos/post")
    hc.Timeout = 5 \'设置超时为5秒
    hc.C \'
    hc.C"Action"":""SynkuData"",""BeginDate"":""" & BeginDate & """ ,""pageIndex"": " & pageIndex & " }\' "
    Dim ret As String = hc.GetData()
    ret = ret.SubString(1,ret.lastIndexOf("""")-1)
    ret = ret.Replace("\\","") 


    Dim json As String  = ret
    Dim jo As JObject = JObject.Parse(json)
    Dim ja As JArray = jo("msg")
    For i As Integer = 0 To ja.Count - 1
        cmd.CommandText = "Insert Into 条码货号 (ean, sku, id,BeginDate,pageIndex) Values(?,?,?,?,?)"
        cmd.Parameters.Add("@ean",ja(i)("ean").ToString)
        cmd.Parameters.Add("@sku",ja(i)("sku").ToString  )
        cmd.Parameters.Add("@id", ja(i)("id").ToString)
        cmd.Parameters.Add("@BeginDate", BeginDate)
        cmd.Parameters.Add("@pageIndex", pageIndex)
        cmd.ExecuteNonQuery
        cmd.Parameters.Clear()
    Next

返回的 ja(i)("id") 取最大值作为 pageIndex 的值继续查询

要怎么写呢
[此贴子已经被作者于2019/9/17 22:53:51编辑过]

--  作者:fubblyc
--  发布时间:2019/9/17 22:55:00
--  
返回值:

{"id":46,"ean":"2050002842373","sku":"1011021-2/41"},{"id":47,"ean":"2050002842380","sku":"1011021-2/42"},{"id":48,"ean":"2050002842403","sku":"1011021-2/44"},{"id":49,"ean":"2050002842366","sku":"1011021-2/40"},{"id":50,"ean":"2050002842397","sku":"1011021-2/43"},{"id":57,"ean":"2050002871359","sku":"1011021-4/39"},{"id":58,"ean":"2050002871380","sku":"1011021-4/42"},{"id":59,"ean":"2050002871403","sku":"1011021-4/44"}

那就要取58 作为pageIndex 的参数值继续查询
返回,继续

--  作者:有点蓝
--  发布时间:2019/9/17 22:57:00
--  
有担当的接口一般数组的最后一项就是最大的值。

ja(ja.Count - 1)("id")

--  作者:fubblyc
--  发布时间:2019/9/17 23:00:00
--  
恩恩,没错。

那怎么进行下一轮传参呢


老师:

dim pageIndex as Integer = 0        ja(ja.Count - 1)("id")
    Dim hc As New HttpClient("https://vpm:89/api/pos/post")
    hc.Timeout = 5 \'设置超时为5秒
    hc.C \'
    hc.C"Action"":""SynkuData"",""BeginDate"":""" & BeginDate & """ ,""pageIndex"": " & pageIndex & " }\' "
    Dim ret As String = hc.GetData()
[此贴子已经被作者于2019/9/17 23:00:50编辑过]

--  作者:有点蓝
--  发布时间:2019/9/17 23:02:00
--  
不都一样?

BeginDate & """ ,""pageIndex"": " & ja(ja.Count - 1)("id").tostring & " }\' "

--  作者:fubblyc
--  发布时间:2019/9/17 23:06:00
--  
对了,有个条件,如果超过100条才会换 pageIndex ,

那我就判断本页是否有大于100条,有则下一轮,无则停止。

--  作者:fubblyc
--  发布时间:2019/9/17 23:13:00
--  
搞定,谢谢蓝老大
[此贴子已经被作者于2019/9/17 23:17:51编辑过]