C# 从MS Access到SQL Server的大容量复制

C# 从MS Access到SQL Server的大容量复制,c#,C#,我正在尝试将MS Access数据库中的表复制到SQL Server数据库中 代码如下: private static void BulkCopyAccessToSQLServer(string sql, string destinationTable,string fileName) { using (DataTable dt = new DataTable()) { using (OleDbConnection conn = new OleDbConnection(Stri

我正在尝试将MS Access数据库中的表复制到SQL Server数据库中

代码如下:

private static void BulkCopyAccessToSQLServer(string sql, string destinationTable,string fileName)
{
  using (DataTable dt = new DataTable())
  {
     using (OleDbConnection conn = new OleDbConnection(String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0}", fileName)))
     using (OleDbCommand cmd = new OleDbCommand(sql, conn))
     using (OleDbDataAdapter adapter = new OleDbDataAdapter(cmd))
     {
         cmd.Connection.Open();
         adapter.SelectCommand.CommandTimeout = 240;
         adapter.Fill(dt);
         adapter.Dispose();
     }
     using (SqlConnection conn2 = new SqlConnection(connStr))
     {
         conn2.Open();
         using (SqlBulkCopy copy = new SqlBulkCopy(conn2))
         {
             copy.DestinationTableName = destinationTable;
             copy.BatchSize = 1000;
             copy.BulkCopyTimeout = 240;
             copy.WriteToServer(dt);
             copy.NotifyAfter = 1000;
         }
     }
  }
}
像这样调用此函数

BulkCopyAccessToSQLServer("select * from Table1", "Table1", "C:\\db.‌​accdb");
我得到以下错误:

System.Data.OleDb.OLEDBEException:找不到文件“C:\db”。‌​accdb.
在System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString 构造,OLEDB连接)
在System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions)中 选项、对象池组ProviderInfo、数据库连接池池、, 数据库连接(拥有对象)
位于System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection,DbConnectionPoolGroup(池组)
位于System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection 拥有连接)
位于System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection 外部连接,DbConnectionFactory连接工厂)
在System.Data.OleDb.OleDbConnection.Open()中 在WebService.BulkCopyAccessToSQLServer(字符串sql,字符串destinationTable,字符串文件名)
在WebService.Import()上


我做错了什么?

从堆栈跟踪的外观来看,您正在从web服务运行批量导入


web服务进程是否有足够的权限访问
C:\db.accdb

您确定数据库
C:\db.accdb
存在吗?我通过sql管理完成了这项工作,但需要通过我的代码完成。您能告诉我如何通过management studio安排吗?请参阅:这不是仅适用于sql server 2005以后的版本吗?我有2000是的,我已经把数据库移到了几个地方,但还是一样的error@Beginner:您需要检查文件的ACL(访问控制列表),并确保包含服务登录的条目。例如,如果您在应用程序池
Blah
下运行,它可能是
iisapppool\Blah