C# 从MS Access到SQL Server的大容量复制
我正在尝试将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
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
。