|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Registered User
Iscritto dal: Nov 2007
Città: Firenze
Messaggi: 15
|
[C#] Database & Insert
Inserisco una lista di elementi (25) in un database.
Tempo Impiegato = 4 secondi!!!! E' normale che impieghi così tanto? Io ho utilizzato ExecuteNonQuery(), ma non è che esiste un metodo più veloce?? Codice:
public bool INSERISCI(string sql) { SQLiteConnection connessione; using (connessione = new SQLiteConnection()) { try { connessione.ConnectionString = ConnessioneDatabase.DBSOURCE; connessione.Open(); using (SQLiteCommand command = new SQLiteCommand(connessione)) { command.CommandText = sql; command.ExecuteNonQuery(); } } catch (Exception e) { MessageBox.Show(e.ToString()); return false; } } return true; } |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Sep 2007
Messaggi: 754
|
Cosi ne inserisco 10.000 in 5/6 secondi su un PocketPc
Codice:
DbTransaction dbTrans = cnn.BeginTransaction(); cmd.CommandText = "INSERT INTO TestCase(Field1) VALUES(?)"; DbParameter Field1 = cmd.CreateParameter(); cmd.Parameters.Add(Field1); for (int n = 0; n < 10000; n++) { Field1.Value = n; cmd.ExecuteNonQuery(); } dbTrans.Commit();
__________________
http://www.tevigroup.it/ |
![]() |
![]() |
![]() |
#3 |
Junior Member
Iscritto dal: Dec 2007
Messaggi: 2
|
Il tuo codice manca di ottimizzazione. Con questo codice apri e chiudi la connessione OGNI volta che fai un inserimento (apertura e chiusura connessione sono le procedure più dispendiose in termini di tempo), una pratica sbagliatissima in un contesto database.
Prova a tenere aperta la connessione per la durata della tua applicazione. Il tutto dovrebbe essere molto più responsivo. |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 03:37.