使用 DTS 从其他数据库创建和填充 MS Access 文件






3.14/5 (10投票s)
一篇关于从其他数据库创建和填充自动化 MS Access 文件的文章。
引言
如果您正在使用 Oracle 或 SQL Server 等数据库,并且希望将数据复制到不与您的数据以任何方式链接的其他数据库,您可以使用 SQL Server 等 DTS 来实现,但促使我开发此实用程序的确切场景是“以自动化的方式完成所有操作”。我开发此应用程序是为了将我的源数据转换为 MS Access 文件格式,但同样也可以用于将任何类型的数据源转换为 MS Access。
背景
如前所述,开发此应用程序的原因是为了以自动化的方式完成所有操作。这意味着,我希望定期以自动化的方式将我的源数据转换为 MS Access。
代码
Imports System.IO
Imports System.Data.OleDb
Module Module1
Sub Main()
Try
'Access DB File path
Dim File_Path As String
File_Path = _
AppDomain.CurrentDomain.BaseDirectory & "db.mdb"
'If Exists already then delete it first
If File.Exists(File_Path) Then
File.Delete(File_Path)
End If
'Connection String for New DB File
Dim Access_ConnStr As String = _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
" Data Source=" & File_Path
'ADOX.Catalog Object to craete new DB
Dim Catalog As New ADOX.Catalog()
Catalog.Create(Access_ConnStr)
Catalog.ActiveConnection.close()
Catalog = Nothing
'OleDb Connection to Create New table
Dim Access_Conn As OleDb.OleDbConnection
Access_Conn = New OleDb.OleDbConnection(Access_ConnStr)
Access_Conn.Open()
Dim strSQL As String = "CREATE TABLE tblTest (" & _
" TerritoryID Text(20)," & _
" TerritoryDescription Text(50)," & _
" RegionID Number);"
Dim cmd As OleDbCommand = Access_Conn.CreateCommand()
cmd.CommandText = strSQL
cmd.ExecuteNonQuery()
'Set and Open Connection of the Source DB
Dim SrcConnStr As String = "Provider=sqloledb; " & _
"Data Source=(local); Initial Catalog=northwind; " & _
"User Id=sa; Password=;integrated " & _
"security=SSPI;persist security info=False;"
Dim SrcConn As New OleDbConnection(SrcConnStr)
SrcConn.Open()
Dim srcReader As System.Data.OleDb.OleDbDataReader
strSQL = "select * from Territories"
Dim SrcCmd As New OleDbCommand(strSQL, SrcConn)
'Read from Source and populate in the Access DB
srcReader = SrcCmd.ExecuteReader()
While srcReader.Read
strSQL = "insert into tblTest values('" & _
srcReader.GetValue(0).ToString & "','" _
& srcReader.GetValue(1).ToString & _
"','" & srcReader.GetValue(2).ToString & "')"
cmd.CommandText = strSQL
cmd.ExecuteNonQuery()
End While
cmd.Dispose()
cmd = Nothing
Access_Conn.Close()
Access_Conn.Dispose()
Access_Conn.ReleaseObjectPool()
Access_Conn = Nothing
srcReader.Close()
srcReader = Nothing
SrcCmd.Dispose()
SrcCmd = Nothing
SrcConn.Close()
SrcConn.Dispose()
SrcConn = Nothing
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
End Module
使用演示
下载演示项目并解压缩,然后运行“DTS.exe”。它将在同一目录中生成一个 MS Access 文件“db.mdb”。如果您查看此文件,它将包含 SQL Server Northwind 数据库的所有数据。注意:要运行此演示应用程序,必须在您的计算机上安装 SQL Server。
使用代码
下载代码并在 Visual Studio .NET 中打开,然后根据您的要求进行以下更改
- 更改“
File_Path
”并将其设置为您想要创建新文件的位置。 - 根据您的源表更改第 26 行的
Create Table
命令。 - 如果您使用的是 SQL Server 以外的数据库,请在第 36 行更改源数据库的连接字符串。
- 更改第 41 行的源 ‘
Select
’ 命令。 - 根据源表和目标表更改第 47 行的 ‘
Insert
’ 命令。
就这样了...
关注点
- 该应用程序可以设计为导入多个表。
- 可以将控制台应用程序安排为自动数据导入实用程序。
- 该应用程序可以设计成用户只需选择数据库并单击即可导入数据的方式。
摘要
有很多用于 DTS 的工具,但这是我以自己想要的方式完成的努力;并且使用这个单一的应用程序,可以实现许多目标。所以请以您自己的方式使用它。祝您编程愉快!