public void LoadToDb(FileInfo dbfFile, string TableName, SqlConnection connection) { NDbfReader.Table dbfTable = NDbfReader.Table.Open(dbfFile.Open(FileMode.Open)); NDbfReader.Reader dbfReader = dbfTable.OpenReader(Encoding.GetEncoding(866)); SqlTransaction TRA = connection.BeginTransaction(("Bulk" + TableName)); SqlBulkCopy da = new SqlBulkCopy(connection, SqlBulkCopyOptions.Default, TRA); da.BulkCopyTimeout = 60000; da.DestinationTableName = string.Concat(SchemaName, ".", TableName); DataTable servertable = ds.Tables[TableName]; List <DataRow> rows = new List <DataRow>(); while (dbfReader.Read()) { DataRow newrow = servertable.NewRow(); foreach (NDbfReader.Column c in dbfTable.Columns) { newrow.SetField(c.Name, dbfReader.GetValue(c.Name)); } rows.Add(newrow); } da.WriteToServer(rows.ToArray()); TRA.Commit(); dbfTable.Dispose(); dbfFile.Delete(); }
public void loadDBFToDb_House(FileInfo dbfFile, SqlConnection connection) { NDbfReader.Table dbfTable = NDbfReader.Table.Open(dbfFile.Open(FileMode.Open)); NDbfReader.Reader dbfReader = dbfTable.OpenReader(System.Text.Encoding.GetEncoding(866)); QueriesTableAdapter qta = new QueriesTableAdapter(); int c = 1; guidparse gp = (string x) => { if (x == null) { return(null); } else { return(Guid.Parse(x)); } }; while (dbfReader.Read()) { Int32 ESTSTATUS; Int32.TryParse(dbfReader.GetValue("ESTSTATUS").ToString(), out ESTSTATUS); if (!(bool)qta.CanInsert_tmpHouse_Query(Guid.Parse(dbfReader.GetValue("HOUSEID").ToString())) && (bool)qta.CanInsert_tmpHouseAO_Query(Guid.Parse(dbfReader.GetValue("AOGUID").ToString())) ) { qta.Insert_tmpHouse_Query( dbfReader.GetString("POSTALCODE"), dbfReader.GetString("IFNSFL"), dbfReader.GetString("TERRIFNSFL"), dbfReader.GetString("IFNSUL"), dbfReader.GetString("TERRIFNSUL"), dbfReader.GetString("OKATO"), dbfReader.GetString("OKTMO"), dbfReader.GetDateTime("UPDATEDATE"), dbfReader.GetString("HOUSENUM"), Int32.Parse(dbfReader.GetValue("ESTSTATUS").ToString()), dbfReader.GetString("BUILDNUM"), dbfReader.GetString("STRUCNUM"), Int32.Parse(dbfReader.GetValue("STRSTATUS").ToString()), Guid.Parse(dbfReader.GetValue("HOUSEID").ToString()), Guid.Parse(dbfReader.GetValue("HOUSEGUID").ToString()), Guid.Parse(dbfReader.GetValue("AOGUID").ToString()), dbfReader.GetDateTime("STARTDATE").Value, dbfReader.GetDateTime("ENDDATE").Value, Int32.Parse(dbfReader.GetValue("STATSTATUS").ToString()), gp(dbfReader.GetString("NORMDOC")), Int32.Parse(dbfReader.GetValue("COUNTER").ToString()), dbfReader.GetString("CADNUM"), Int32.Parse(dbfReader.GetValue("DIVTYPE").ToString())); } c++; LogInfo(c.ToString() + ". " + Guid.Parse(dbfReader.GetValue("HOUSEID").ToString())); } dbfTable.Dispose(); dbfFile.Delete(); }