本系列问题就后最后一个问题了,在判断数据源能连通后,需要继续判断目标表 dd 是否存在了,但看了 http://www.foxtable.com/help/index.html?n=1943.htm
列出外部数据源nwnd中的所有表名:
Dim
lst As List(Of String)
lst = Connections("nwnd").GetTableNames
For Each nm As String In lst
Output.Show(nm)
Next
但不知代码如何定才正确.
以下代码 已测试通过
'删除临时数据表报有行
For i As Integer = Tables("试验临时数据").Rows.count-1 To 0 Step -1
Tables("试验临时数据").Rows(i).Delete
Next
'生成表名
Dim st As Date = Date.Now
Dim d As Date = Date.Today
Dim dd As String
dd = Format(d, "yyMMdd")
dd = CStr(dd)
dd = "t" & dd
'合并外部数据源中的数据到临时数据表中
For Each cn As Connection In Connections
Dim s As String = cn.ConnectionString
If Connections.TryConnect(s) = True Then
'MessageBox.Show("数据源无法连通!")
If left(cn.Name,1) = "M" Then
在此需判断 目标表 dd 是否存在,但不知如何写代码
Dim mg As New Merger
mg.ConnectionName = cn.Name '指定数据源名称
mg.SourceTableName = dd '指定要合并的表
mg.DataTableName = "试验临时数据" '指定接收数据的表
mg.Merge() '开始合并
End If
For Each dr1 As DataRow In DataTables("试验临时数据").Select("来源 is null or 来源 = ''")
dr1("来源") = cn.Name
dr1("日期") = st
Next
End If
Next
经测试 建立三个数据源,其中M179数据源无 t140504数据表,运行程序时,系统提示 有一个数据源 t140504数据表不存在错误窗口.确定后数据源M197,M198数据源里的数据均已提取.
这说明 是不是有两种方式处理错误.
方法一:取数据表数据前判断,数据表是否存在.
方法二:设置程序运行过程中如果有错误直接忽略,跳过,不给任何提示窗口.
可是两种方法都不会.
[此贴子已经被作者于2014-5-4 22:26:37编辑过]