Foxtable(狐表)用户栏目专家坐堂 → 有关主从表关联删除的问题


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

主题:有关主从表关联删除的问题

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


加好友 发短信
等级:幼狐 帖子:166 积分:1527 威望:0 精华:0 注册:2013/1/26 14:43:00
有关主从表关联删除的问题  发帖心情 Post By:2013/3/18 10:48:00 [只看该作者]

我在关联表里已设置同步删除关联行,为什么删除主表后,我在数据库里查还有明细记录存呢?


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


加好友 发短信
等级:等待验证 帖子:3855 积分:20692 威望:0 精华:5 注册:2012/6/21 14:03:00
  发帖心情 Post By:2013/3/18 10:49:00 [只看该作者]

用户已被锁定

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


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

也许主表和明细的数据,没有同步加载。

例如加载了订单,但是这个订单的明细没有加载,那么对应的明细就不会自动删除了。

可以在订单表DataRowDeleteing再加上一点代码:

 

Dim cmd As New SqlCommand
cmd.Connection Name = "数据源名称"
cmd.CommandText = "Delete From {明细表的名称} Where 订单编号 = '" & e.DataRow("订单编号") & "'"
cmd.ExecuteNonQuery

 

这样没有加载的订单明细,也会被删除的。


 回到顶部
美女呀,离线,留言给我吧!
逆行舟
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:116 积分:956 威望:0 精华:0 注册:2013/8/9 12:14:00
  发帖心情 Post By:2013/9/4 10:19:00 [只看该作者]

我了一下狐狸爸爸的方法

跳出一个框
图片点击可在新窗口打开查看此主题相关图片如下:qq图片20130904101525.jpg
图片点击可在新窗口打开查看

不知道是错在哪,数据库是access的


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


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

ConnectionName

 

你多了一个空格


 回到顶部
美女呀,离线,留言给我吧!
逆行舟
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:116 积分:956 威望:0 精华:0 注册:2013/8/9 12:14:00
  发帖心情 Post By:2013/9/4 10:52:00 [只看该作者]

Provider=Microsoft.Jet.OLEDB.4.0;Data Source=dg.mdb;Persist Security Info=False

数据源我是这么连的可以

但是写在datarowdeleting里的的代码,执行的时候说

不存在名为"dg.mdb"的数据源

 


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


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

这个填写的是你添加数据源命名的名称,  是这个名称  http://www.foxtable.com/help/topics/1822.htm

 回到顶部
美女呀,离线,留言给我吧!
逆行舟
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:116 积分:956 威望:0 精华:0 注册:2013/8/9 12:14:00
  发帖心情 Post By:2013/9/4 11:20:00 [只看该作者]

Dim cmd As New SqlCommand
cmd.C
cmd.CommandText = "Delete From cpcymx Where ghl = '" & e.DataRow("id") & "'"
cmd.ExecuteNonQuery

 

 

cpcymx表中记录有好几条的,要用FOR语句了吧,bei不出来了,求救


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


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

不会啊,条件删除何须FOR循环.

实在不会就上例子吧.

 回到顶部
美女呀,离线,留言给我吧!
逆行舟
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:116 积分:956 威望:0 精华:0 注册:2013/8/9 12:14:00
  发帖心情 Post By:2013/9/4 12:50:00 [只看该作者]

解决了,写在beforedeletddatrow 里面了

If e.DataRow.GetChildRows("cpcymx").Count > 0 Then
    Dim s As String = "此piao报关存在出运商品明细, 是否确定要删除此报关信息及其商品明细?"
    If MessageBox.Show(s,"提示",MessageBoxButtons.YesNo,MessageBoxIcon.Question) = DialogResult.No
        e.Cancel= True
    End If
End If

 

我老想着,表里有好几条数据,要循环起来挨个删,读取也是一样,现在还有九头牛拉不回来的架式,这个观念得改过来


 回到顶部