Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
帮助中的:
Clear方法会直接从后台清除所有行,并即刻生效,且不能撤销,所以一定要慎重使用。
请问"直接从后台清除所有行"是只针对内部数据表,还是针对内部数据表和外部数据表?
"清除所有行"对于如果是内部数据表中有加载条件的只加载部分数据,是针对只加载的数据清除还是连同未加载的数据从后台一起清除?如果是外部数据呢?
像这个代码应该怎么写?
即如果是外部数据表时,如果是"登录"表就不清除,其它从后台删除所有行;如果是内部数据表时,如果是"登录"表就不清除,其它表加载所有数据并清除
For Each dt As DataTable In DataTables
If dt.Type = 3 Then '如果是外部数据表
If dt.Name = "登录" Then
Continue For
Else
DELETE FROM {dt.Name} '这有问题
End If
Else If dt.Type = 1 Then '如果是内部数据表
If dt.Name = "登录" Then
Continue For
Else
dt.LoadFilter = ""
dt.Load
dt.DataRows.Clear()
End If
Next
应该这样吧?
For Each dt As DataTable In DataTables
If dt.Type = 3 Then '如果是外部数据表
If dt.Name = "登录" Then
Continue For
Else
Dim cmd As New SQLCommand
cmd.C
cmd.CommandText = "DELETE FROM {dt.Name}" '不确定这是否有问题,主要是不确定{dt.Name}这个是否正确
cmd.ExecuteNonQuery()
End If
Else If dt.Type = 1 Then '如果是内部数据表
If dt.Name = "登录" Then
Continue For
Else
dt.LoadFilter = ""
dt.Load
dt.DataRows.Clear()
End If
Next
测试一下就知道了, 还等回答吗.
messagebox.show("DELETE FROM {dt.Name}" )
运行看一下。
判断内部和外部表是多余的,因为DELETE语句无论对内部还是外部都是有效的。
问题在于执行DELETE语句后要重新打开项目才能看到结果。
如果是三楼代码的要求,不如直接在BeforeCloseProject事件设置代码,每次关闭系统时执行,下次打开项目时自然也就不存在哪些数据了。