- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- [ASP.NET] usare un parametro per il nome della tabella
-
[ASP.NET] usare un parametro per il nome della tabella
Un saluto al forum.
questa la mia domanda,
ho questo codice
<asp:AccessDataSource ID="magazzino" runat="server" DataFile="mdb-database/magazzino.mdb" SelectCommand="SELECT * FROM prodotto WHERE ([id] <>0)"> <SelectParameters> <asp:QueryStringParameter Name="aa" QueryStringField="tab" /> </SelectParameters> </asp:AccessDataSource> ```passando con metodo GET il nome della tabella nella variabile "tab", posso assegnare come nome di tabella nella select la variabile aa ricavata dalla QueryStringField ? ossia posso fare una cosa del genere : SelectCommand="SELECT * FROM aa WHERE ([id] <>0)" Grazie di eventuale risposta.
-
Premetto che non amo gli oggetti AccessDataSource e SqlDataSource quindi non li conosco bene.
Comunque, per quanto ho potuto constatare, questi oggetti non ti permettono di selezionare il nome della tabella a seconda di una variabile. Devo dire che mi trovo d'accordo con MS, poiché nella pagina usi la stessa struttura e quindi dovresti usare una tabella sola, in aggiunta ad un discriminatore (se hai bisogno di fare delle distinzioni), cioè un campo che indica il tipo di record, ergo è giusto solo l'uso del/i parametro/i di select.
Se vuoi, in ogni caso, cambiare il nome della tabella in accordo ad un parametro get, devi cambiare la select nell'evento onLoad della pagina.
protected void Page_Load(object sender, EventArgs e) { String nomeTabella = Request.QueryString["tab"]; if (!String.IsNullOrEmpty(nomeTabella)) magazzino.SelectCommand = String.Format("select * from {0} where ([id] <> 0)", nomeTabella); }
Spero di essere stato chiaro
-
Grazi Holin
si hai spiegato bene la cosa e ho capito il sistema.grazie