|
|||||||
|
|
|
![]() |
|
|
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: 11:08.



















