Advertisement
Guest User

Untitled

a guest
Apr 19th, 2014
41
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.23 KB | None | 0 0
  1. foreach (var line in File.ReadLines(fileLocation + @"" + filename))
  2. {
  3. var dataColumns = line.Split('t');
  4. var dr = dt.NewRow();
  5.  
  6. for (var i = 0; i < dataColumns.Length; i++)
  7. {
  8. dr[i] = dataColumns[i].Trim().Length == 0 ? null : dataColumns[i];
  9. }
  10.  
  11. dt.Rows.Add(dr);
  12. }
  13.  
  14. using (var destinationConnection = new SqlConnection(Settings.Default.ConnectionString))
  15. {
  16. var tableName = filename.Substring(0, filename.IndexOf('.'));
  17. destinationConnection.Open();
  18.  
  19. try
  20. {
  21. using (var createAndDropTableCommand = new SqlCommand("sp_DropAndCreateTable", destinationConnection))
  22. {
  23. createAndDropTableCommand.CommandType = CommandType.StoredProcedure;
  24. createAndDropTableCommand.Parameters.Add("@TableToCreate", SqlDbType.VarChar).Value = tableName;
  25. createAndDropTableCommand.ExecuteNonQuery();
  26. }
  27.  
  28. using (var bulkCopy = new SqlBulkCopy(destinationConnection))
  29. {
  30. bulkCopy.DestinationTableName = "dbo." + tableName;
  31. bulkCopy.BatchSize = 10000;
  32. bulkCopy.ColumnMappings.Clear();
  33. foreach (DataColumn col in dt.Columns)
  34. {
  35. bulkCopy.ColumnMappings.Add(new SqlBulkCopyColumnMapping(col.ColumnName, col.ColumnName));
  36. }
  37.  
  38. bulkCopy.WriteToServer(dt);
  39. }
  40. }
  41. finally
  42. {
  43. destinationConnection.Close();
  44. }
  45. }
  46.  
  47. System.Data.DataSet oDataSet = new System.Data.DataSet();
  48. oDataSet.ReadXmlSchema(strSchemaXml);
  49. oDataSet.ReadXml(strTableXml);
  50.  
  51. if (oDataSet.Tables.Count > 0)
  52. {
  53. using (System.Data.SqlClient.SqlConnection conn = new System.Data.SqlClient.SqlConnection(oTargetDatabase.ConnectionString))
  54. {
  55. conn.Open();
  56. System.Data.SqlClient.SqlTransaction oTran = conn.BeginTransaction();
  57.  
  58. System.Data.SqlClient.SqlBulkCopy oSqlBulkCopy
  59. = new System.Data.SqlClient.SqlBulkCopy(conn, System.Data.SqlClient.SqlBulkCopyOptions.KeepIdentity, oTran);
  60. oSqlBulkCopy.BulkCopyTimeout = 600;
  61. oSqlBulkCopy.BatchSize = 1000;
  62. oSqlBulkCopy.DestinationTableName = strFullyQualifiedTableName;
  63. oSqlBulkCopy.NotifyAfter = 10000;
  64. oSqlBulkCopy.SqlRowsCopied += new System.Data.SqlClient.SqlRowsCopiedEventHandler(oSqlBulkCopy_SqlRowsCopied);
  65. foreach (System.Data.DataColumn ocol in oDataSet.Tables[0].Columns)
  66. {
  67. oSqlBulkCopy.ColumnMappings.Add(ocol.ColumnName, ocol.ColumnName);
  68. }
  69.  
  70. oSqlBulkCopy.WriteToServer(oDataSet.Tables[0]);
  71. oTran.Commit();
  72. conn.Close();
  73. }
  74. System.Console.WriteLine("Wrote : " + oDataSet.Tables[0].Rows.Count.ToString() + " records ");
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement