73 messaggi dal 02 agosto 2007
Ciao, avrei questo problema. Ho una GridView che mostra dati provenienti da piu tabelle, in quanto c'è una colonna che riporta il valore di un'altra tabella legato da una ForeignKey.
Se dovessi solo visualizzarlo, no problem.
I problemi nascono in fase di Update. Precedentemente ho realizzato la stessa cosa, ma senza ForeingKey e tutto funzia.
In questo caso invece mi dà errore: Sintassi non corretta in prossimità della parola chiave 'WHERE'

Dovrei forse usare 'DataTable' ????
Il codice del dataSource è questo.

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:blablablablabla %>"
SelectCommand="SELECT dipendenti.dipendente_id, dipendenti.nome, dipendenti.cognome, ... , mansioni.tipo
FROM dipendenti INNER JOIN .... dipendenti.mansioni = mansioni.mansione_id;
WHERE (dipendenti.azienda = azienda.azienda_id) ... (aspnet_Users.UserName = @user)"
DataSourceMode="DataSet"
UpdateCommand="UPDATE [dipendenti]
SET
[nome] = @nome,
[cognome] = @cognome,
...
[giudizio] = @giudizio,

WHERE
[dipendente_id] = @dipendente_id" >

<UpdateParameters>
<asp:Parameter Type="String" Name="nome" />
<asp:Parameter Type="String" Name="cognome" />
...
<asp:Parameter Type="String" Name="dipendente_id" />
</UpdateParameters>

<SelectParameters>
<asp:ControlParameter ControlID="Label3" Name="user" PropertyName="Text" />
</SelectParameters>
</asp:SqlDataSource>





ciao e grazie per le risposte!!!!!
provato a inseire il campo dipendente_id tra la collezione DataKeyNames del GridView?

ciao marco

p.s. intercetta l'evento Updating e controlla la query che viene inviata al db e magari testa la query fuori da SqlDataSource

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
73 messaggi dal 02 agosto 2007
ciao, grazie per la risposta.
allora: datakeyname l'avevo già impostato sull'id della tabella...

In realtà, rivendendo la qestione, mi sono reso conto che ciò che mi serve è visualizzare una 'DropDownList' al momento dell' UPDATE (e quando sarà, anhe dell'Insert Into).

Il problema quindi è questo: ho le tabelle organizzate in questo modo:

Dipendenti
id | nome|cognome|mansione |
int|varchar|varchar|int(perchè FK con mansione_id

Mansione
id | tipo
int|varchar

Quindi quando vado a modificare la mansione del dipendente voglio che visualizzi i 'tipi' di mansione (attraverso una dropdownlist) e non l'id ! (ovviamente!!)

come posso fare?? come posso procedere ???


grazie ancora!!!
hai bosognooo di 2 SqlDataSource, uno per alimentare il GridView l'altro per alimentare la DropDownList.

fatto questo non ti rimane che collegare il valore delezionato della DropDownList con un campo che alimenta il GridView

ovvero:

<asp:DropDownList.... selectedValue = '<%# Bind("mansione ")%>'

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx
73 messaggi dal 02 agosto 2007
scusami ancora... ma dove devo inserire la DropDownList ?? mi dà errore in qualsiasi punto la metto.. anche all'interno di

<Update Parameter> </> che mi sembrava la soluzione piu sensata.


grazie
la DropDownList la devi inseire in una TemplateField all'interdo dell'EditTemplate

ciao marco

Chi parla senza modestia troverà difficile rendere buone le proprie parole.
Confucio

http://nostromo.spaces.live.com/default.aspx

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.