Come promesso, ecco il codice incriminato:
codice:
        public void fromTxtToDb()
        {
            String leggi;
            String listino;
            String codice;
            String prezzo;
            String deposito;
            String query;
            Int64 i;
            Int64 k;
            Int64 z;
            i = 0;
            try
            {
                fin = new StreamReader("f:\\b3listp.txt");
                Console.WriteLine("Aperto il file in lettura per conteggio righe.");
                z=0;
                while (!fin.EndOfStream)
                {
                    fin.ReadLine();
                    z++;
                }
                fin.Close();
                Console.WriteLine("Numero righe contenute nel file: {0}",z);
                fin = new StreamReader("f:\\b3listp.txt");
                Console.WriteLine("Aperto file in lettura per l'elaborazione.");
                conn.Open();
                Console.WriteLine("Aperto il database per l'elaborazione.");
                k=0;
                while (!fin.EndOfStream)
                {
                    k++;
                    leggi = fin.ReadLine();
                    listino = leggi.Substring(0, 2);
                    codice = leggi.Substring(2, 50).Replace("'","''");
                    prezzo = leggi.Substring(83, 7);
                    deposito=leggi.Substring(52,4);
                    query = "insert into [blistp-indice](listino,codice,deposito,prezzo) values('" + listino + "','" + codice + "','" + deposito + "'," + prezzo + ")";
                    cmd.CommandText = query;
                    i +=cmd.ExecuteNonQuery();
                    Console.WriteLine("{0}/{1}",k,z);
                }
                conn.Close();
                fin.Close();
                Console.WriteLine("Righe lette da file: {0}", k);
                Console.WriteLine("Righe inserite nel DB: {0}", i);
            }
            catch (Exception e)
            {
                Console.WriteLine("{0}", e.Message);
            }
        }
Innanzitutto se vedete l'inizializzazione o l'utilizzo di alcune variabili o oggetti non dichiarati è perchè sono globali della classe.

La tabella su cui va ad inserire è composta dai quattro campi presenti nella insert, dove listino, codice e deposito sono di tipo testo (varchar(2), varchar(50), varchar(4)) e insieme sono chiave primaria della tabella.

Come vedete c'è un ciclo che serve per leggere tutte le righe del file txt e per ognuno di essi fa elaborazioni e infine esegue una insert...

Se però la insert genera errore passa alla catch, ma c'è il problema che ho bisogno di continuare con la insert successiva, ovvero il ciclo successivo, e non giova il fatto che termina così l'operazione...