是否有与VBA(Excel)中的SqlBulkCopy类似的东西?

时间:2019-05-24 16:32:32

标签: c# sql excel vba sqlbulkcopy

在C#中,我使用System.Data.SqlClient并执行以下类似的代码。 VB(Excel)中有类似的东西吗?

    { static void InsertDataIntoSQLServerUsingSQLBulkCopy(DataTable csvData) 

            string connetionString = null; 
            SqlConnection cnn; 
            connetionString = System.Configuration.ConfigurationManager.ConnectionStrings["Import"].ConnectionString;

        cnn = new SqlConnection(connetionString); 
            cnn.Open(); 
            using (SqlBulkCopy s = new SqlBulkCopy(cnn)) 
            { 
                s.DestinationTableName = "dbo.MyTable"; 
                foreach (var column in csvData.Columns) 
                    s.ColumnMappings.Add(column.ToString(), column.ToString()); 
                s.WriteToServer(csvData); 
            } 

我尝试将表中的数据从Excel导出到SQL Server。我不能使用批量插入,因为文件位于另一台计算机上,因此SQL无法读取它。

更多,我尝试在VB(Excel)中进行如下操作:

Dim recSet As New ADODB.Recordset
Dim fieldIndex As Long
Dim rowIndex As Long
Set recSet = New ADODB.Recordset
Sqlstr = "Select * from MyTable"
recSet.Open Sqlstr, con, adOpenDynamic, adLockOptimistic


     For rowIndex = 2 To 10000
                recSet.AddNew
                    For fieldIndex = 1 To 9
                 recSet.Fields(Cells(1, fieldIndex).Value) = Replace(Sheets("MyTable").Cells(rowIndex, fieldIndex).Value, ",", ".")
                Next fieldIndex
    Next rowIndex
    recSet.UpdateBatch

但是有成千上万的行,并且每行都通过自己的INSERT语句插入到SQL中。这需要大量时间和服务器资源。有可能选择这个吗?

0 个答案:

没有答案