Я пытаюсь использовать SqlBulkCopy, чтобы вставить много строк за короткое время. Я получаю сообщение об ошибке: «Не удается получить доступ к таблице назначения myTable». Вот мой код:
string conn = ConfigurationManager.ConnectionString["myConnection"].ToString();
DataTable dt = new DataTable();
dt.Columns.Add(new DataColumn("Col1", typeof(string)));
dt.Columns.Add(new DataColumn("Col2", typeof(int)));
for (int i=0;i<10000;i++)
{
DataRow dr = dt.NewRow();
dr["Col1"] = "Col1_" + i.toString();
dr["Col2"] = i;
}
using (SqlBulkCopy bulkSql = new SqlBulkCopy(conn))
{
bulkSql.BatchSize = 10000;
bulkSql.BulkCopyTimeout = 10000;
bulkSql.ColumnMappings.Clear();
bulkSql.ColumnMappings.Add("Col1", "Col1");
bulkSql.ColumnMappings.Add("Col2", "Col2");
bulkSql.DestinationTableName = "[myTable]"
bulkSql.WriteToServer(dt);
}
Я наконец нашел ответ. Имя моей таблицы находится в [MyDatabase]. [MySchema]. [MyTable]. Так что в web.config моя строка подключения правильно имела начальный каталог = MyDatabase; но мне также понадобилось: bulkSql.DestinationTableName = "[mySchema]. [myTable]"; для того чтобы запустить его успешно. Спасибо за вашу помощь!