ciao, trasferisco i record di un file di testo in una tabella di un db access, quindi mi connetto al file di testo e al db access, poi ciclo sui record del file di testo e aggiorno il record selezionato, se non è possibile aggiornarlo perchè non lo trovo, lo inserisco.. e fino a qui nessun problema.. il problema nasce quando nella tabella del db access sono presenti record che non sono presenti nel file di testo, quindi siccome la tabella del db access deve rispecchiare il file di testo, devo trovare i record del db access che non sono presenti nel file di testo e cancellarli.. apparentemente può sembrare una cosa semplice e in effetti lo è.. il problema è trovare una soluzione prestazionale, in quanto se i record si aggirano sulle poche centinai allora ok.. ma quando sono migliaia di record? l'operazione diventa lunga e non posso permettermelo
Vi faccio vedere il codice che utilizzo:
codice:
...
connessioni
....
while(dr.Read())
{
string SqlUpdate = "UPDATE Listino set codice=?,descrizione=?,marca=?,famiglia=?,disp=?,l1=?,l2=?,l3=?,l4=? where codice='"+dr[0].ToString().Trim()+"'";
string SqlInsert = "INSERT INTO Listino (codice,descrizione,marca,famiglia,disp,l1,l2,l3,l4) VALUES(?,?,?,?,?,?,?,?,?)";
OleDbCommand cminorup = new OleDbCommand();
cminorup.CommandText=SqlUpdate;
cminorup.Connection=cnmdb;
//parametri che utilizzo per popolare o aggiornare il db//
int righeModificate = cminorup.ExecuteNonQuery();
if (righeModificate==0)
{
cminorup.CommandText=SqlInsert;
cminorup.ExecuteNonQuery();
}
}
Come potrei integrare la selezione ed eliminazione dei record della tabella access non presenti nel file di testo?