无法在批量插入c#上访问目标表

时间:2017-07-10 13:45:31

标签: c# asp.net sqlbulkcopy

我正在尝试使用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);
}

1 个答案:

答案 0 :(得分:0)

我终于找到了答案。我的表名在[MyDatabase]。[mySchema]。[myTable]中。所以在web.config中,我的连接字符串正确地具有Initial Catalog = MyDatabase;但我还需要:     bulkSql.DestinationTableName =&#34; [mySchema]。[myTable]&#34 ;; 为了成功运行它。谢谢大家的帮助!