Foxtable(狐表)用户栏目专家坐堂 → [求助]帮忙找个可行的方法 谢谢


  共有4640人关注过本帖树形打印复制链接

主题:[求助]帮忙找个可行的方法 谢谢

帅哥哟,离线,有人找我吗?
jiskin
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
[求助]帮忙找个可行的方法 谢谢  发帖心情 Post By:2013/11/13 16:57:00 [只看该作者]

Dim dt As DataTable
Dim cmd As new SQLCommand
cmd.ConnectionName
cmd.CommandText = "select * from {Request_Purchase}"
dt = cmd.ExecuteReader(True)
For Each r As Row In Tables("Purchase Orders_Order_Add").Rows
    For Each dr As DataRow In dt.DataRows
        If r("Material") = dr("Material") Then
            dr.Delete()
            dt.Save
        End If
    Next
Next

我想直接删除另外一个表中的匹配项,但领导说不能在遍历中删除集合成员
我想不到更好的方法了,求帮忙想想啊 大哥

 回到顶部
帅哥哟,离线,有人找我吗?
狐狸爸爸
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2013/11/13 17:02:00 [只看该作者]

临时表删除行出错,在改进之前,先用sql语句删除吧,另外你这个代码临时表只用两列,没有必要加载所有列的:

 

Dim dt As DataTable
Dim cmd As new SQLCommand
Dim cmd1 As new SqlCommand
cmd.Connection Name = "xxx"
cmd1.Connection Name = "xxx"
cmd.CommandText = "select [_Identify],Material from {Request_Purchase}"
dt = cmd.ExecuteReader(True)
For Each r As Row In Tables("Purchase Orders_Order_Add").Rows
    For Each dr As DataRow In dt.DataRows
        If r("Material") = dr("Material") Then
            cmd1.commandtext = "delete from {Request_Purchase} where [_Identify] = " & dr("_Identify")
            cmd1.ExecuteNonQuery
        End If
    Next
Next


 回到顶部
帅哥哟,离线,有人找我吗?
Bin
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2013/11/13 17:02:00 [只看该作者]

"delete FROM {Request_Purchase} WHERE Material ='" dr("Material") "'"

 回到顶部
帅哥哟,离线,有人找我吗?
jiskin
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:三尾狐 帖子:714 积分:5207 威望:0 精华:0 注册:2012/4/13 13:10:00
  发帖心情 Post By:2013/11/13 19:28:00 [只看该作者]

OK

 回到顶部