使用ASP.Net-VB.Net从MS Access SourceDatabase复制到目标数据库

使用ASP.Net-VB.Net从MS Access SourceDatabase复制到目标数据库,asp.net,vb.net,Asp.net,Vb.net,这是我的代码,我仍然缺少从SourceDatabase复制到DestinationDatabase的后缀为“copy”的东西 显然,这是一段来自VB.NET2010的代码片段——它不仅不是一个完整的类,甚至不是一个完整的子类 您还没有收到任何回复的原因是,您的代码片段存在很多问题。您实际上是在要求某人为您编写此模块 许多问题中的几个: 我无法识别连接字符串中的| DataDirectory |。。。这应该是类似于C:\DataDirectory的东西吗 对myDB2.Open()和myDB2.C

这是我的代码,我仍然缺少从SourceDatabase复制到DestinationDatabase的后缀为“copy”的东西


显然,这是一段来自VB.NET2010的代码片段——它不仅不是一个完整的类,甚至不是一个完整的子类

您还没有收到任何回复的原因是,您的代码片段存在很多问题。您实际上是在要求某人为您编写此模块

许多问题中的几个:
  • 我无法识别连接字符串中的
    | DataDirectory |
    。。。这应该是类似于C:\DataDirectory的东西吗
  • myDB2.Open()
    myDB2.Close()的调用在哪里
  • 调用GetOleDbSchemaTable时,为什么要求主键而不是表?

最大的问题是复制表的技术

Insert * Into [TableNameCopied] From [TableName]
如果复制的新表
TableName
应与现有表
TableName
位于同一数据库中,则可以正常工作。对你来说,那不是真的

如果代码起作用,则每个表都会发生以下情况:

  • myDBCommand1会删除Sourcedatabase中的表
  • myDBCommand2尝试将刚复制的数据库从SourceDatabase复制到SourceDatabase
  • 请注意,这两个命令对象都是针对MyDB创建的,都不是从MyDB2创建的。除了声明MyDB2指向DestinationDatabase之外,您根本不使用它。。。你甚至都不打开或关闭它!但是没有标准的SQL语法表示从完全不同的数据库中的表读取数据

    (SQL Server有“链接服务器”的概念,您可以在其中指定四个部分名称,如ServerName.DatabaseName.OwnerName.TableName,如
    TestServer.Billing.Dbo.Customers
    。但这不是标准SQL,Access不支持它。)

    至少有两种方法可以完成你想要完成的事情

  • 编写代码,精确检查表CurrentTable的外观(列数、每列的名称等),并在DestinationDatabase中创建相同的表。然后,编写一个循环,从SourceDatabase读取所有数据并将其写入DestinationDatabase。这不是小事
  • 在Microsoft Access中打开DestinationDatabase,然后单击文件/获取外部数据/导入,选择SourceDatabase,转到“表”选项卡,单击“全部选择”,然后单击“确定”。然后,更改每个复制表的名称,将“复制”附加到名称中。
    (我认为可以将其捕获为宏或VBA,但我还没有尝试过。)

  • 祝你好运,Mokokamello。

    显然,这是一段来自VB.Net 2010的代码片段-它不仅不是一个完整的类,甚至不是一个完整的子类

    您还没有收到任何回复的原因是,您的代码片段存在很多问题。您实际上是在要求某人为您编写此模块

    许多问题中的几个:
    • 我无法识别连接字符串中的
      | DataDirectory |
      。。。这应该是类似于C:\DataDirectory的东西吗
    • myDB2.Open()
      myDB2.Close()的调用在哪里
    • 调用GetOleDbSchemaTable时,为什么要求主键而不是表?

    最大的问题是复制表的技术

    Insert * Into [TableNameCopied] From [TableName]
    
    如果复制的新表
    TableName
    应与现有表
    TableName
    位于同一数据库中,则可以正常工作。对你来说,那不是真的

    如果代码起作用,则每个表都会发生以下情况:

  • myDBCommand1会删除Sourcedatabase中的表
  • myDBCommand2尝试将刚复制的数据库从SourceDatabase复制到SourceDatabase
  • 请注意,这两个命令对象都是针对MyDB创建的,都不是从MyDB2创建的。除了声明MyDB2指向DestinationDatabase之外,您根本不使用它。。。你甚至都不打开或关闭它!但是没有标准的SQL语法表示从完全不同的数据库中的表读取数据

    (SQL Server有“链接服务器”的概念,您可以在其中指定四个部分名称,如ServerName.DatabaseName.OwnerName.TableName,如
    TestServer.Billing.Dbo.Customers
    。但这不是标准SQL,Access不支持它。)

    至少有两种方法可以完成你想要完成的事情

  • 编写代码,精确检查表CurrentTable的外观(列数、每列的名称等),并在DestinationDatabase中创建相同的表。然后,编写一个循环,从SourceDatabase读取所有数据并将其写入DestinationDatabase。这不是小事
  • 在Microsoft Access中打开DestinationDatabase,然后单击文件/获取外部数据/导入,选择SourceDatabase,转到“表”选项卡,单击“全部选择”,然后单击“确定”。然后,更改每个复制表的名称,将“复制”附加到名称中。
    (我认为可以将其捕获为宏或VBA,但我还没有尝试过。)
  • 祝你好运,莫科卡梅洛