Problema con SqlDataSource

venerdì 23 aprile 2010 - 14.05

neverm1nd75 Profilo | Newbie

Salve a Tutti,

ho un problema con un SqlDataSource. Vi spiego qual è il mio problema.

Sto implementando una pagina per la ricerca clienti che si può effettuare in 2 modi:

- o cliccando sull'iniziale
- oppure facendo una ricerca inserendo del testo in una textbox e scegliendo su quale campo si vuol cercare (codice, ragione sociale, indirizzo...) visualizzando i risultati in una gridview col binding al datasource in oggetto.

La query che ho definito per la mia select è la seguente:

SELECT DISTINCT CardCode, CardName, CardType, Address, ZipCode, LicTradNum, City, County, Country, E_Mail FROM OCRD WHERE (CardCode LIKE '%' + @CardCode + '%' OR @CardCode IS NULL) AND (CardName LIKE @CardName + '%' OR @CardName IS NULL) AND (CardType = 'C' OR CardType = 'L')

Se provo la query nel layout dell'sql data source, questa viene eseguita correttamente, tirando fuori i risultati corretti.

Quando provo ad utilizzarla nel codice, la query non viene lanciata.

Cioè cliccando su un pulsante "Cerca" vado a prelevare il valore nella textbox e vado a settare i parametri di selezione della query nel modo seguente:

SqlDataSource1.SelectParameters.Item("CardCode").DefaultValue = sCriteria
SqlDataSource1.SelectParameters.Item("CardName").ConvertEmptyStringToNull = True

Dove sCriteri è il testo inserito nella textbox

Dopodichè sia provando con il comando
SqlDataSource1.Select(Arguments)

Sia non lanciando il command, la query non viene eseguita. Da cosa può dipendere?....Prima mi ha funzionato, poi non ricordo cosa ho cambiato, credo di avere aggiunto un paramentro e non ha più funzionato.

Grazie a chi vorrà aiutarmi.




Gluck74 Profilo | Guru

ci vorrebbe più codice perché così non ho capito molto dove potrebbe essere il problema.
Manda per cortesia sia il codice aspx del sqldatasource, sia eventuali ricge di codice cs che lo interessano.

ciao ciao

fguida Profilo | Expert

Cosa vorresti fare con questa porzione di codice?

WHERE (CardCode LIKE '%' + @CardCode + '%' OR @CardCode IS NULL)

Magari volevi scrivere

WHERE (CardCode LIKE '%' + @CardCode + '%' OR CardCode IS NULL)

Francesco

neverm1nd75 Profilo | Newbie

Problema risolto,
mi rimanevano dei valori "sporchi" sui parametri passati alla query.

Per Francesco: no no era proprio quello che volevo fare, siccome il parametro @CardCode non viene sempre popolato (visto che posso cercare anche per ragione sociale, indirizzo, etc etc) o bisogno di gestire l'eventualità che tale parametro non venga valorizzato.

Grazie lo stesso.

Ciao,
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