以文本方式查看主题

-  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=6346)

--  作者:lpxjw_zyl
--  发布时间:2010/3/23 22:26:00
--  请问上述代码错哪儿了?
for each dc1 As datacol in datatables("Zstb").datacols
    for each dc As datacol in datatables("Zszy").datacols
        if dc1.name = dc.name then
            Exit For
        elseif  dc1.name <> dc.name then
            Dim Len As Integer = DataTables("Zszy").DataCols(dc.name).MaxLength
            DataTables("Zstb").DataCols.Add(dc.name, GetType(string),len)
        end if
    next
next

上述代码是两个表中如果zstb表中无zszy表中的列就增加列,有就退出,无就增加,请问上述代码错哪儿了?
--  作者:程兴刚
--  发布时间:2010/3/23 22:33:00
--  
for each dc1 As datacol in datatables("Zstb").datacols
    for each dc As datacol in datatables("Zszy").datacols
        if dc1.name = dc.name then
            Exit For
        else
            Dim Len As Integer = DataTables("Zszy").DataCols(dc.name).MaxLength
            DataTables("Zstb").DataCols.Add(dc.name, GetType(string),len)
        end if
    next
next


晕,让楼主带沟里去了!
[此贴子已经被作者于2010-3-23 22:36:01编辑过]

--  作者:lpxjw_zyl
--  发布时间:2010/3/23 22:36:00
--  
已改正
for each dc1 As datacol in datatables("Zstb").datacols
    for each dc As datacol in datatables("Zszy").datacols
        If DataTables("Zstb").DataCols.Contains(dc.name) Then
            exit for
        else
            Dim Len As Integer = DataTables("Zszy").DataCols(dc.name).MaxLength
            DataTables("Zstb").DataCols.Add(dc.name, GetType(string),len)
        end if
    next
next

--  作者:mr725
--  发布时间:2010/3/23 22:38:00
--  
for each dc1 As datacol in datatables("Zstb").datacols
    for each dc As datacol in datatables("Zszy").datacols
        if dc1.name = dc.name then
            \'Exit For  这个不要了,否则遍历完之前一旦有相同的列,就停止执行了~
        elseif  dc1.name <> dc.name then
            Dim Len As Integer = DataTables("Zszy").DataCols(dc.name).MaxLength
            DataTables("Zstb").DataCols.Add(dc.name, GetType(string),len)
        end if
    next
next
或者这样:
for each dc1 As datacol in datatables("Zstb").datacols
    for each dc As datacol in datatables("Zszy").datacols
        iif  dc1.name <> dc.name then
            Dim Len As Integer = DataTables("Zszy").DataCols(dc.name).MaxLength
            DataTables("Zstb").DataCols.Add(dc.name, GetType(string),len)
        else
            return
        end if
    next
next