Impossibile accedere alla tabella di destinazione sull'inserimento di massa c #

asp.net c# sqlbulkcopy

Domanda

Sto cercando di utilizzare SqlBulkCopy per inserire un sacco di righe in breve tempo. Viene visualizzato l'errore: "Impossibile accedere alla tabella di destinazione myTable." Ecco il mio codice:

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);
}

Risposta popolare

Finalmente ho trovato la risposta. Il nome della mia tabella è in [MyDatabase]. [MySchema]. [MyTable]. Quindi in web.config la stringa di connessione aveva correttamente Initial Catalog = MyDatabase; ma avevo anche bisogno di: bulkSql.DestinationTableName = "[mySchema]. [myTable]"; per eseguirlo con successo. Grazie a tutti per il vostro aiuto!



Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché
Autorizzato sotto: CC-BY-SA with attribution
Non affiliato con Stack Overflow
È legale questo KB? Sì, impara il perché