以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 请专家指导 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=10500) |
-- 作者:倪惠明 -- 发布时间:2011/6/9 9:22:00 -- 请专家指导 在数据表中新增数据时,判断该单位数据已经存在的话,则删除新增的行。但下面的代码为什么不能达到要求。 If e.DataCol.Name = "dwdm" Then |
-- 作者:狐狸爸爸 -- 发布时间:2011/6/9 9:35:00 -- 你做个简单例子上来,我帮你看看问题出在哪。 一般不应该在DataColChanged事件中删除行的。 |
-- 作者:倪惠明 -- 发布时间:2011/6/9 9:46:00 -- 我是在DataColChanged事件中做的,是想把刚新增的行给删除,可实际删除的是以前的数据行,如果要将刚新增的行删除应如何写代码。谢谢! |
-- 作者:狐狸爸爸 -- 发布时间:2011/6/9 10:17:00 -- 我不太明白你的意思,增加行的时候,增加的是一个空行,然后输入各列的数据,难道你是在输入数据的时候,删除刚刚增加的行? |
-- 作者:blackzhu -- 发布时间:2011/6/9 10:31:00 -- 你换个事件做,就是说先判断里面有没有重复值,如有,停止添加行,如没有增加一行. |
-- 作者:倪惠明 -- 发布时间:2011/6/9 11:08:00 -- 是5楼说的意思,如果存在重复的值就必须停止增加行,如没有则正常增加行。但要判断是否有重复值又必须先获的单位代码,所以 我在DataColChanged事件中想把是重复值的刚新增的行给删除,也就是要取消前面新增行操作。可实际删除的是以前的数据行而不是刚新增的行。谢谢!
|
-- 作者:blackzhu -- 发布时间:2011/6/9 12:10:00 -- If e.DataCol.Name = "dwdm"Then Dim drs As List(Of DataRow) = DataTables("表名").Select("[dwdm] = \'" & e.DataRow("dwdm") & "\'") If drs.Count - 1 > 0 Then MessageBox.Show("该单位数据已经存在不能添加!") CurrentTable.Current.Delete() End If End If 因为你是在新增行里数据数据时判断是不是有重覆的数据,所以删除的应该就是当前行.
|
-- 作者:倪惠明 -- 发布时间:2011/6/9 14:35:00 -- 还是不行,看来只得用其他方法了。谢谢各位了! |
-- 作者:blackzhu -- 发布时间:2011/6/9 16:23:00 -- 我的代码我测试可以的呀.你是新增输入数据的时候,提示重覆.然后删除呀,因为新增时的光标在新增行,也就当前行,所以也就删除当前行了. |
-- 作者:倪惠明 -- 发布时间:2011/6/17 20:16:00 -- 这个方法在直接输入的情况下没有问题,但如果代码是通过目录树表录入就会自动退出系统,这是不是系统的BUG,请狐狸爸爸解释一下。 |