Consiglio sulla gestione delle ricerche in un database

venerdì 27 aprile 2007 - 07.16

trinity Profilo | Guru

salve ragazzi,
ho creato un applicativo che si collega ad un databse installato su un server remoto. Il database è di tipo sql server 2005.
Nel database c'è una tabella nazioni. Nell'applicativo su determinate textbox io faccio la ricerca nell'evento keyup delle nazioni e dei comuni presenti in archivio.
Ecco un codice di esempio:

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

ovviamente le ricerche avvengono tutte con delle stored che si trovano sul server dove è installato il db.

Solo che facendo dei test stavo notanto che quando vado a digitare lettera per lettera della nazione per esempio, la compilazione della parole avviene in maniera lenta in quanto per ogni lettera che io digito avviene la ricerca nell'archivio.

Per farvi capire meglio vi posto il codice che richiama la stored delle nazioni:

Public Function CaricaRec(ByVal ObjNazione As PropertyNazioni) As PropertyNazioni Dim oNazione As PropertyNazioni = New PropertyNazioni Try SqlCmd.CommandText = "GetNazione" SqlCmd.Parameters.Add("@Nazione", SqlDbType.VarChar).Value = ObjNazione.Nazione SqlCmd.Connection = Db SqlCmd.CommandType = CommandType.StoredProcedure SqlDr = SqlCmd.ExecuteReader If SqlDr.Read() Then oNazione.Nazione = SqlDr.GetSqlString(0).Value() oNazione.CodNazione = SqlDr.GetSqlString(1).Value End If Return oNazione Catch ex As Exception Throw ex Finally SqlDr.Close() SqlCmd.Parameters.Clear() SqlCmd.Dispose() End Try End Function

mentre questa è la stored vera e propria:

ALTER PROCEDURE [dbo].[GetNazione] ( @Nazione Varchar(250) ) AS BEGIN IF @Nazione IS NULL OR LEN(@Nazione) = 0 Select nazione,Codnazione From dbo.Nazioni Where 1 = 0 ELSE Select nazione,Codnazione From dbo.Nazioni Where nazione LIKE @Nazione + N'%' END

a questo punto capita un pò la mia problematica mi consigliate sempre questo metodo che sto utilizzando oppure non utilizzo la gestione della ricerca sul keyup ma bensì faccio scrivere la nazione e durante il passaggio al campo successivo faccio il controllo sul database per vedere se esiste la nazione digitata?

Accetto anche vostre info o consigli.
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

sanbiz Profilo | Senior Member

Ti consiglio di evitare di aprire thread uguali su più stanze perchè genererebbe confusione.

La mia risposta è stata scritta qui:
http://www.dotnethell.it/Forum/messages.aspx?ThreadID=15240
--
Sandro Bizioli
http://blogs.dotnethell.it/sandro/

trinity Profilo | Guru

si lo so scusa ma non sapevo sotto che categoria inseire il post...perdonami
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5