Bulk copy from MS Access to SQL Server
我正在尝试将表从MS Access数据库复制到SQL Server数据库中。
这是代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | 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; } } } } |
像这样调用这个函数…
1 | BulkCopyAccessToSQLServer("select * from Table1","Table1","C:\\db.??accdb"); |
我得到以下错误:
System.Data.OleDb.OleDbException: Could not find file 'C:\db.??accdb'.
at System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString
constr, OleDbConnection connection)
at System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions
options, Object poolGroupProviderInfo, DbConnectionPool pool,
DbConnection owningObject)
at System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection
owningConnection, DbConnectionPoolGroup poolGroup)
at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection
owningConnection)
at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection
outerConnection, DbConnectionFactory connectionFactory)
at System.Data.OleDb.OleDbConnection.Open()
at WebService.BulkCopyAccessToSQLServer(String sql, String destinationTable, String fileName)
at WebService.Import()
我做错什么了?
您正在从堆栈跟踪的外观运行来自Web服务的批量导入。
Web服务进程是否有足够的权限访问