Código:
{
OpenFileDialog open = new OpenFileDialog();
// open.Filter = "*.txt";
if (open.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
Stopwatch medir = new Stopwatch();
medir.Start();
//Stopwatch.StartNew();
DateTime tiempo1 = DateTime.Now;
//leer cantidad de lineas del archivo
long count = 0;
string archivo = open.FileName;
char[] Delimitador = { '|' };
StreamReader Lector = new StreamReader(archivo);
string Linea1 = Lector.ReadLine();
List<CargarRNC> Lista = new List<CargarRNC>();
while (Linea1 != null)
{
CargarRNC carga2= new CargarRNC();
string[] Campos = Linea1.Split(Delimitador);
carga2.Documento = Campos[0];
carga2.Cliente = Utilidades.LimpiarCadena(Campos[1]);
Lista.Add(carga2);
Linea1 = Lector.ReadLine();
}
Lector.Close();
Lector.Dispose();
count = Lista.Count;
progressBar1.Maximum = Convert.ToInt32(count);
progressBar1.Minimum = 0;
progressBar1.Value = 0;
CargarRNC.BorrarCargaRNC();
FbConnection conn = ConectarFirebirdDB.ObtenerConexion();
FbTransaction trans = conn.BeginTransaction();
int i = 1;
foreach(CargarRNC carga in Lista)
{
string sqltxt = "insert into TB_CARGARNC (rnc,cliente,usuarioid,fechasist)values(" + "'" + carga.Documento+ "'" + "," + "'" + carga.Cliente + "'" + "," + Convert.ToString(0) + "," + "'" + Utilidades.ObtenerFechaHoraSist() + "'" + ")";
FbCommand cmd = new FbCommand(sqltxt, conn, trans);
Int32 aff = 0;
try
{
aff = cmd.ExecuteNonQuery();
if ((i % 1000 == 0))
{
trans.Commit();
trans = null;
trans = conn.BeginTransaction();
count = count - 1000;
cmd.Dispose();
}
else
if (count < 1000)
{
trans.Commit();
trans = null;
cmd.Dispose();
trans = conn.BeginTransaction();
count = count - 1;
}
}
catch (Exception ex)
{
trans.Rollback();
MessageBox.Show(ex.Message);
trans = conn.BeginTransaction();
}
progressBar1.Increment(+1);
progressBar1.Refresh();
i++;
CantRegistroTxt.Text = Convert.ToString(i);
CantRegistroTxt.Refresh();
}
conn.Close();
Lista.Clear();
medir.Stop();
MessageBox.Show("Preceso Terminado Satisfactoriamente, Tiempo Transcurrido: "+medir.Elapsed," Atencion", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
sólo utilizo el Proveedor de .NET