在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中。这需要大量时间和服务器资源。有可能选择这个吗?