Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将MS Access数据库导入SQL Server时性能低下_C#_Sql Server_Database_Performance - Fatal编程技术网

C# 将MS Access数据库导入SQL Server时性能低下

C# 将MS Access数据库导入SQL Server时性能低下,c#,sql-server,database,performance,C#,Sql Server,Database,Performance,将项目从MS Access.mdb数据库文件导入SQL Server时出现问题。我编写了一个C#application in practice数据库,它可以推断.mdb数据库中的数据,并将它们放在SQL Server数据库的表中 我的问题是.mdb数据库包含大约300000篇文章,这些文章将与SQL Server数据库中的所有控件一起插入。.mdb文件由用户选择 我怎样才能加快物品的进口 这是我的C#代码: 考虑使用。由于您正在运行sql查询,我建议您尽可能多地在服务器端工作。在Sql Serv

将项目从MS Access
.mdb
数据库文件导入SQL Server时出现问题。我编写了一个C#application in practice数据库,它可以推断
.mdb
数据库中的数据,并将它们放在SQL Server数据库的表中

我的问题是
.mdb
数据库包含大约300000篇文章,这些文章将与SQL Server数据库中的所有控件一起插入。
.mdb
文件由用户选择

我怎样才能加快物品的进口

这是我的C#代码:

考虑使用。由于您正在运行sql查询,我建议您尽可能多地在服务器端工作。在Sql Server中创建临时表,将所有记录添加到datatable或datarows数组,并使用SqlBulkCopy导入。我认为这是将所有记录移动到Sql Server的最快方法


从那里,您只需几个查询即可同步Sql Server中的两个表。

我将使用SqlBulkCopy

dbConn = new OleDbConnection(@"Provider = Microsoft.Jet.OLEDB.4.0; Data Source=" + dialog.FileName + "; Persist Security Info = False; Jet OLEDB:Database Password = " + textBoxPwdComet.Text + "; Mode = Share Deny None");

 SqlConnection conn2 = db.apriconnessione();
 string query = "SELECT CODMARCA,CODART,DESCR,UM,PRZNETTO,PRZCASA,DATAAGG FROM ARTICOLI"; 
OleDbDataAdapter da = new OleDbDataAdapter(query,dbConn);
DataTable dt = new DataTable();
da.Fill(dt);
conn2.Open();
SqlBulkCopy bulk = new SqlBulkCopy(conn2);
bulk.DestinationTableName = "ARTICOLI";
bulk.WriteToServer(dt);
conn2.close();

谢谢,我会试试你的方法
dbConn = new OleDbConnection(@"Provider = Microsoft.Jet.OLEDB.4.0; Data Source=" + dialog.FileName + "; Persist Security Info = False; Jet OLEDB:Database Password = " + textBoxPwdComet.Text + "; Mode = Share Deny None");

 SqlConnection conn2 = db.apriconnessione();
 string query = "SELECT CODMARCA,CODART,DESCR,UM,PRZNETTO,PRZCASA,DATAAGG FROM ARTICOLI"; 
OleDbDataAdapter da = new OleDbDataAdapter(query,dbConn);
DataTable dt = new DataTable();
da.Fill(dt);
conn2.Open();
SqlBulkCopy bulk = new SqlBulkCopy(conn2);
bulk.DestinationTableName = "ARTICOLI";
bulk.WriteToServer(dt);
conn2.close();