12 messaggi dal 11 settembre 2008
premetto 2 cose :

1 uso di solito SQL server 2005..per un'esigenza ora mi trovo ad usare access
2 ho fatto la stessa cosa usando infatti SQL server 2005, funziona e nn ho avuto problemi

allora ho fatto una GridView con i classici DELETE ed EDIT..quindi definito il datasource in .aspx così :


 <asp:AccessDataSource ID="AccessDataSource" 
                            runat="server" DataFile="~/App_Data/database.mdb"

SelectCommand="SELECT [ID], [Categoria], [Sottocategoria], [DataInserimento], [Titolo], [Prezzo], [Sezione], [descrizione], [sizeAlleg], [contenttype], [descrAb], [sizeAb], [contentAb] FROM [upload]"

DeleteCommand="DELETE FROM upload WHERE ID = ?"
UpdateCommand="UPDATE upload SET Categoria= ?, Sottocategoria = ?, Titolo = ?, Prezzo = ? WHERE id = ?"
OnSelecting="SqlDetailView_Selecting" 
OnUpdating="RepSQLData_Updating" 
OnDeleting="RepSQLData_Deleting" >
                            

<DeleteParameters>
<asp:Parameter Name="ID" Type="Int32"></asp:Parameter>
</DeleteParameters>
                          
<UpdateParameters>
<asp:Parameter Name="Categoria" Type="String"></asp:Parameter>
<asp:Parameter Name="Sottocategoria" Type="String"></asp:Parameter>         
<asp:Parameter Name="Titolo" Type="String"></asp:Parameter>
<asp:Parameter Name="Prezzo" Type="Int32"></asp:Parameter>
<asp:Parameter Name="Sezione" Type="String"></asp:Parameter>
<asp:Parameter Name="ID" Type="Int32"></asp:Parameter>
</UpdateParameters>
                         
                            
</asp:AccessDataSource>



cel BL del GridView sul OnClick del button AGGIORNA ho :


protected void RepSQLData_Updating(object sender,  SqlDataSourceCommandEventArgs e)
        {
            System.Data.Common.DbCommand cmd = e.Command;
            int index =  ModGrid.EditIndex; 
            string sottocategoria = "";


switch(((DropDownList)ModGrid.Rows[index].FindControl("cmdCategoria")).SelectedValue)
            {
                case "case1": 
                    sottocategoria = ((DropDownList)ModGrid.Rows[index].FindControl("ddlSottoCateg")).Text;
                    break;
                case "case2":
                    sottocategoria = ((DropDownList)ModGrid.Rows[index].FindControl("ddlSottoCateg")).Text;
                    break;
                case "case3":
                    sottocategoria = ((DropDownList)ModGrid.Rows[index].FindControl("ddlSottoCateg")).Text;
                    break;
                case "case4":
                    sottocategoria = ((DropDownList)ModGrid.Rows[index].FindControl("ddlSottoCateg")).Text;
                    break;
            }

cmd.Parameters['?'].Value =((DropDownList)ModGrid.FooterRow.FindControl("cmdCategoria")).SelectedValue;
cmd.Parameters['?'].Value = ((DropDownList)ModGrid.FooterRow.FindControl("ddlSottoCateg")).SelectedValue;
cmd.Parameters['?'].Value = ((TextBox)ModGrid.FooterRow.FindControl("txtTitolo")).Text;
cmd.Parameters['?'].Value = ((TextBox)ModGrid.FooterRow.FindControl("txtPrezzo")).Text;
cmd.Parameters['?'].Value = ((DropDownList)ModGrid.FooterRow.FindControl("ddlSezione")).SelectedValue;




ma nn funzina l'update..come faccio a dire quale parametro aggiornare?
con SQL server avrei fatto

cmd.Parameters[@Categoria].Value =((DropDownList)ModGrid.FooterRow.FindControl("cmdCategoria")).SelectedValue;


con access è giusto fare come ho fatto cmd.Parameters['?'] ?
accedi hai parametri per indice

ciao marco

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

http://nostromo.spaces.live.com/default.aspx
12 messaggi dal 11 settembre 2008
nostromo ha scritto:
accedi hai parametri per indice

ciao marco


del tipo cmd.Parameters[1].value =

.. primo parametro della query ?
Modificato da webmauro2.0 il 11 settembre 2008 14.54 -
si dovrebbe andare, considera che pure io evito access

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.