以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  length得到的值 怎么计算总数呢?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=174719)

--  作者:cnsjroom
--  发布时间:2022/1/27 21:10:00
--  length得到的值 怎么计算总数呢?

Dim i As Integer
Dim br1 As List(Of DataRow)
br1 =DataTables("告知内容").Select("uuid=\'3320e743-f78f-4cc9-af16-88890f2a0e21\'")
For Each br As DataRow In br1
    Dim tel As String = br("手机号码")
    Dim tels() As String = tel.split(",")
    i =tels.length
    output.show(i)
Next

 

 

当前输出结果为

1

1

1

有没有办法直接输出结果得到3  即1+1+1=3


--  作者:chen37280600
--  发布时间:2022/1/27 21:23:00
--  

Dim i As Integer
Dim br1 As List(Of DataRow)
br1 =DataTables("告知内容").Select("uuid=\'3320e743-f78f-4cc9-af16-88890f2a0e21\'")
For Each br As DataRow In br1
    Dim tel As String = br("手机号码")
    Dim tels() As String = tel.split(",")
    i +=tels.length    
Next

output.show(i)


--  作者:有点蓝
--  发布时间:2022/1/27 21:27:00
--  
output.show(DataTables("告知内容").GetComboListString("手机号码","uuid=\'3320e743-f78f-4cc9-af16-88890f2a0e21\'").replace("|",",").split(",").length)
--  作者:cnsjroom
--  发布时间:2022/1/27 22:30:00
--  回复:(有点蓝)output.show(DataTables("告知内容")...

DataTables("告知内容").sqlGetComboListString("手机号码","uuid=\'uuid\'and 是否告知=\'是\'").replace("|",",").split(",").length)
DataTables("告知内容").sqlGetComboListString("手机号码","uuid=\'uuid\'and 是否告知=\'否\'").replace("|",",").split(",").length)

 

老师  这两个得到的数据是一样   有没有办法做限制  因为是否告知只能等于一个是 或 否

当等于是的时候 就是成功数     失败数就是0

当等于否的时候 就是失败数     成功数就是0

 

 

Dim uuid As String =args(0)
Dim cmd As new SQ LC ommand
cmd.Conne ct ionName = _data
cmd.Comman dText = "UPD ATE 信息列表 S ET 告知条数 = ? ,成功数 = ? ,失败数 = ? WHERE uuid = ?"
cmd.Parameters.Add("@告知条数",DataTables("告知内容").sqlGetComboListString("手机号码","uuid=\'uuid\'").replace("|",",").split(",").length)
cmd.Parameters.Add("@成功数",DataTables("告知内容").sqlGetComboListString("手机号码","uuid=\'uuid\'and 是否告知=\'是\'").replace("|",",").split(",").length)
cmd.Parameters.Add("@失败数",DataTables("告知内容").sqlGetComboListString("手机号码","uuid=\'uuid\'and 是否告知=\'否\'").replace("|",",").split(",").length)
cmd.Parameters.Add("@uuid",uuid)
cmd.ExecuteNonQuery

 

 

 

如果参照二楼的写法   又会导致项目重复计算这个数据   老师有没有办法限定重复计算呢?

 

告知内容表中对应的uuid记录   如果是否告知等于是  就是成功数 i1  失败数就为零  反之是否告知等于否时 就是失败数i2  成功数就为零 

 

当前代码如下:

 

Dim uuid As String =args(0)
Dim br1 As List(Of DataRow)
br1 =DataTables("告知内容").Sel ect("uuid=\'" & uuid & "\'")
Dim i As Integer
Dim i1 As Integer
Dim i2 As Integer
For Each br As DataRow In br1
    Dim tel As String = br("手机号码")
    Dim tels() As String = tel.split(",")
    i += tels.Length
    If br("是否告知")="是" Then
        i1 += tels.Length
        i2=0
    Else  If br("是否告知")="否" Then
        i1 = 0
        i2 += tels.Length
    End If
Next
output.show(i)
output.show(i1)
output.show(i2)

Dim cmd As new S QLC ommand
cmd.Connec tion Name = _data
cmd.Comm andText = "UPD ATE 信息列表 SET 告知条数 = ? ,成功数 = ? ,失败数 = ? WHERE uuid = ?"
cmd.Parameters.Add("@告知条数",i)
cmd.Parameters.Add("@成功数",i1)
cmd.Parameters.Add("@失败数",i2)
cmd.Parameters.Add("@uuid",uuid)
cmd.ExecuteNonQuery

[此贴子已经被作者于2022/1/27 22:39:36编辑过]

--  作者:有点蓝
--  发布时间:2022/1/27 22:39:00
--  
先看3遍:http://www.foxtable.com/webhelp/topics/1284.htm
--  作者:cnsjroom
--  发布时间:2022/1/27 22:46:00
--  回复:(有点蓝)先看3遍:http://www.foxtable.com/w...

Dim uuid As String =args(0)
Dim cmd As new SQL Co mmand
cmd.Conne ctio nName = _data
cmd.CommandText = "UP DATE 信息列表 S ET 告知条数 = ? ,成功数 = ? ,失败数 = ? WHERE uuid = ?"
cmd.Parameters.Add("@告知条数",DataTables("告知内容").sqlGetComboListString("手机号码","uuid=\'" & uuid & "\'").replace("|",",").split(",").length)
cmd.Parameters.Add("@成功数",DataTables("告知内容").sqlGetComboListString("手机号码","uuid=\'" & uuid & "\'and 是否告知=\'是\'").replace("|",",").split(",").length)
cmd.Parameters.Add("@失败数",DataTables("告知内容").sqlGetComboListString("手机号码","uuid=\'" & uuid & "\'and 是否告知=\'否\'").replace("|",",").split(",").length)
cmd.Parameters.Add("@uuid",uuid)
cmd.ExecuteNonQuery

 

修正成这样  还是一样的   告知数是1  成功数和失败数都是1    预期是成功和失败只能有一个是1    因为是否告知只能有一个值  是或否


--  作者:有点蓝
--  发布时间:2022/1/27 23:06:00
--  
dim s as string = DataTables("告知内容").sqlGetComboListString("手机号码","uuid=\'" & uuid & "\'and 是否告知=\'是\'")
if s > "" then 
msgbox(s.replace("|",",").split(",").length)
else
msgbox(0)
end if