Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/275.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# 在VBA(Excel)中是否有类似于SqlBulkCopy的东西?_C#_Sql_Excel_Vba_Sqlbulkcopy - Fatal编程技术网

C# 在VBA(Excel)中是否有类似于SqlBulkCopy的东西?

C# 在VBA(Excel)中是否有类似于SqlBulkCopy的东西?,c#,sql,excel,vba,sqlbulkcopy,C#,Sql,Excel,Vba,Sqlbulkcopy,在C#中,我使用System.Data.SqlClient并执行类似于下面代码的操作。VB(Excel)中是否有类似的东西 我尝试将表格中的数据从Excel导出到SQL Server。我不能使用大容量插入,因为文件位于不同的计算机上,所以SQL无法读取它 因此,我还尝试在VB(Excel)中制作如下内容: 但是有数千行,每一行都由自己的INSERT语句插入SQL。这需要大量的时间和服务器资源。可以选择这个吗 SQL Server上是否安装了Microsoft.ACE.OLEDB.12.0提供程序

在C#中,我使用System.Data.SqlClient并执行类似于下面代码的操作。VB(Excel)中是否有类似的东西

我尝试将表格中的数据从Excel导出到SQL Server。我不能使用大容量插入,因为文件位于不同的计算机上,所以SQL无法读取它

因此,我还尝试在VB(Excel)中制作如下内容:


但是有数千行,每一行都由自己的INSERT语句插入SQL。这需要大量的时间和服务器资源。可以选择这个吗

SQL Server上是否安装了
Microsoft.ACE.OLEDB.12.0
提供程序?使用SQL查询将数据读入表中。您可以为其公开一个COM可见API,用C#编写-它将包含一个包含表元数据的数组、另一个包含数据的数组和一个连接字符串;从那里,C代码可以创建
DataTable
,打开连接,并利用
SqlBulkCopy
。ADODB比.NET 2.0(该类在.NET 1.1中不存在)早了好几年。如果您可以访问SQL Server Management Studio,还可以使用“导入数据”功能从Excel表中读取数据作为数据源。为什么不使用c版本?您似乎已经拥有了它,而且VisualStudio是免费的……您看过SSIS了吗?
    { 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); 
            } 
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