Store Procedure con SqlDataSource e gridView

lunedì 03 novembre 2008 - 19.20

gae58 Profilo | Senior Member

salve,

sto provando ad usare le SP. Quello che faccio non so se sia giusto o se si possa fare.

Ho creato una SP:
CREATE PROCEDURE dbo.Prova
AS
/* SET NOCOUNT ON */
select Codice, Descrizione from ProvaTab
RETURN

Poi in una web Form inserisco un SqlDataSource:
<asp:SqlDataSource ID="SqlDsStoPro" runat="server" ConnectionString="<%$ ConnectionStrings:SchedaAZ %>" SelectCommand="Prova" SelectCommandType="StoredProcedure"></asp:SqlDataSource>


Poi collego l'SqlDataSource ad una GridView:
<asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False" DataSourceID="SqlDsStoPro"
</asp:GridView>

Se ho inserito bene il tutto mi dovrebbe visulizzare i record, ma ciò non è vero.
Ho provato la stessa cosa son SqlDataSource senza la SP e tutto funziona.

Qualcuno mi potrebbe dire dove sbaglio?

grazie


Gaetano

alx_81 Profilo | Guru

>salve,
ciao!

>sto provando ad usare le SP. Quello che faccio non so se sia giusto o se si possa fare.

>Poi in una web Form inserisco un SqlDataSource:
><asp:SqlDataSource ID="SqlDsStoPro" runat="server" ConnectionString="<%$
>ConnectionStrings:SchedaAZ %>" SelectCommand="Prova" SelectCommandType="StoredProcedure"></asp:SqlDataSource>


>Poi collego l'SqlDataSource ad una GridView:
><asp:GridView ID="GridView2" runat="server" AutoGenerateColumns="False"
>DataSourceID="SqlDsStoPro"
></asp:GridView>

>Qualcuno mi potrebbe dire dove sbaglio?
Sembra tutto corretto. Per sicurezza prova ad indicare dbo.Prova nel nome..
Solo un consiglio, non commentare il SET NOCOUN ON, è corretto che ci sia.
Se sei sicuro che la tua tabella contiene dati, quello che hai scritto sembra corretto.
Hai provato a testare la stored procedure da SQL Server Management Studio?

>grazie
di nulla!
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

gae58 Profilo | Senior Member

ti ringrazio, ma sono stato molto disattento e solo ora ho scoerto di non aver messo i campi nella gridView, in quanto pensavo di aver attivato autogenerate column

grazie per l'interessamneto.

La disattenzione e la fretta provoca notevoli guai e perdita di tempo .

Scusa per la disattenzione


Gaetano

gae58 Profilo | Senior Member

ciao Alessandro,

ho effettuato le modifiche e la gridView mi funziona.

Adesso per fare un passo avanti, ho inserito un parametro per constatarne il funzionamento.

Ho collegato la Query della SP ad un parametro che viene preso da una DDL ed il tutto viene filtrato bene.

Un ulteriore aggiunta è stata quella di aggiungere un elemento per poter far visualizzare tutti i movimenti.

Se non ricordo male in un post avevo letto che con WHERE @Codice IS NULL OR Codice = @Codice
Pemetteva la visualizzazione di tutti i moviemnti o solo di quello scelto.

E' così che si fa o cìè qualche altro meccanismo?


Gaetano

alx_81 Profilo | Guru

>ciao Alessandro,
Ciao!

>E' così che si fa o cìè qualche altro meccanismo?
è una possibilità, non la migliore per le prestazioni, ma con poche righe fa quello che deve fare.
Personalmente preferisco (se il parametro poi è solo uno, ancora meglio) fare un IF in una stored procedure.

--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

gae58 Profilo | Senior Member

ho pensato anch'io all'IF, solo che non ho capito come poter controllare il paramentro.

Nel senso se nella SP scrivo

...
@Capitolo nvachar(4)
...

IF @Codice = NULL
ELSE

va bene,

ma se cerco di controllare il valore del Paramentro non mi fa salvare la SP:
IF @Codice = 'T'
ELSE


Gaetano

alx_81 Profilo | Guru

>ho pensato anch'io all'IF, solo che non ho capito come poter controllare il paramentro.

>IF @Codice = NULL
>ELSE

devi usare IF @Codice IS NULL non =, le impostazioni di default di SQL Server impongono l'utilizzo di IS

SET ANSI_NULLS
http://msdn.microsoft.com/en-us/library/aa259229(SQL.80).aspx

>ma se cerco di controllare il valore del Paramentro non mi fa
>salvare la SP:
>IF @Codice = 'T'
>ELSE
Cosa significa questa frase?
--

Alessandro Alpi | SQL Server MVP

http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org

gae58 Profilo | Senior Member

ti ringrazio, ho risolto definendo un avar come parametro.


Gaetano
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