Oui, il y a un moyen:
DataTable dataTable = null; // your data needs to be here
try
{
ConnectionStringSettings mConString = ConfigurationManager.ConnectionStrings["SiteSqlServer"];
// Optional truncating old table
using (SqlConnection connection = new SqlConnection(mConString.ConnectionString))
{
connection.Open();
// Delete old entries
SqlCommand truncate = new SqlCommand("TRUNCATE TABLE MYTABLE", connection);
truncate.ExecuteNonQuery();
}
SqlBulkCopy bulkCopy = new SqlBulkCopy(mConString.ConnectionString, SqlBulkCopyOptions.TableLock)
{
DestinationTableName = "dbo.MYTABLE",
BatchSize = 100000,
BulkCopyTimeout = 360
};
bulkCopy.WriteToServer(dataTable);
}
catch (Exception ex)
{
Console.WriteLine(ex);
}
S'il vous plaît Experiement avec le BatchSize - 100000 était bon pour moi - il ne devrait pas être supérieure à celle - vitesse migth diminue autrement. BatchSize ne limite pas vos données - c'est juste la taille de chaque "paquet" qui sera envoyé au serveur sql. SiteSQLServer doit être dans votre app.config ou web.config.
Vous devez changer les paramètres ici sinon.
Veuillez changer MYTABLE à votre nom de table.
Quelle version de SQL Server? 2008? –