以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  关于信息顺序填入的问题  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=166125)

--  作者:81538475
--  发布时间:2021/5/19 15:50:00
--  关于信息顺序填入的问题
有一段字符串用|隔开了  "显示器1:DELL SP2318H|显示器2:DELL SP2317H|显示器3:DELL SP222H|显示器4:DELL SP222H"

如何将这四个信息按照这个优先级填入: 优先级1.第一列有相同信息的行优先填入这一行的第二列 。优先级2.第一列不为空的优先填入这一行的第二列,优先级3.剩下2个的在填入第一列没有信息的行中呢。


图片点击可在新窗口打开查看

[此贴子已经被作者于2021/5/19 16:53:47编辑过]

--  作者:81538475
--  发布时间:2021/5/19 16:53:00
--  
图片点击可在新窗口打开查看 哪位大神帮忙解决下呀。
--  作者:有点蓝
--  发布时间:2021/5/20 8:57:00
--  
Dim str As String  ="显示器1:DELL SP2318H|显示器2:DELL SP2317H|显示器3:DELL SP222H|显示器4:DELL SP222H"
Dim dr As DataRow
Dim dt As DataTable = DataTables("表B")
Dim lst As new List(of String)
For Each s1 As String In str.split("|")
    Dim sr() As String = s1.split(":")
    dr = dt.find("第一列=\'" & sr(1) & "\'")
    If dr Is Nothing Then
        lst.Add(sr(1))
    Else
        dr("第二列") = sr(1)
    End If
Next
For Each s1 As String In lst
    dr = dt.find("第一列 Is not null And 第二列 Is null")
    If dr Is Nothing Then
        dr = dt.find("第一列 Is null And 第二列 Is null")
    End If
    If dr Is Nothing Then
        dr = dt.AddNew
    End If
    dr("第二列") = s1
Next

--  作者:81538475
--  发布时间:2021/5/20 14:38:00
--  
多谢,不过还有点问题。
比如表格是这样,就只能写入3个显示器了
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.table


[此贴子已经被作者于2021/5/20 14:38:58编辑过]

--  作者:有点蓝
--  发布时间:2021/5/20 14:45:00
--  
相同的数据应该怎么处理?有2个DELL SP222H
--  作者:81538475
--  发布时间:2021/5/20 14:47:00
--  
写上一个,另一个按照后面的优先级排
--  作者:有点蓝
--  发布时间:2021/5/20 15:02:00
--  
dr = dt.find("第一列=\'" & sr(1) & "\' and 第二列 Is null")

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1 (5).zip