29 messaggi dal 25 gennaio 2002
Salve a tutti
da stamattina sto provando a inoltrarmi nella collaborazione db objectdatasource.mentre il select tramite dataobject è banale e riesce subito, l'update mi da sempre è comunque un messaggio criptico,inquietante ma a quanto pare diffuso :"impossibile trovare un metodo non generico "etc etc
dopo un po di google ho escluso fossi nel caso descritto da boschi http://blog.boschin.it/archive/2006/06/01/cultureinfobug_workaround.aspx sul suo blog ,perchè non ho la culture info settata ne utilizzo il DataObjectTypeName ,altre fonti (tra cui il libro di esposito) pongono l'attenzione sul datakeysname consigliando di richiamare il parametro della chiave utilizzando il suffisso "original_" cosa che ho puntualmente fatto ,ma nessun risultato nemmeno cosi.inutile anche settare il readonly del campo chiave su false .a questo punto mi è rimasto il ritorno al sqldatasource ,ma avendo fattoci la bocca e comprendendo come con le classi nell'objectdatasource si aprano mondi ,pregherei qualche anima pia di dedicarmi 5 minuti .
Grazie
Arnaldo
segue codice
  <asp:DetailsView ID="DetailsView1" runat="server" AutoGenerateRows="False" BackColor="White" 
          BorderColor="#E7E7FF" BorderStyle="None" BorderWidth="1px" CellPadding="3" DataSourceID="ObjectDataSource2"
          GridLines="Horizontal" Height="50px" Width="125px"   
           DataKeyNames="id_tour"           
           >
          <FooterStyle BackColor="#B5C7DE" ForeColor="#4A3C8C" />
          <EditRowStyle BackColor="#738A9C" Font-Bold="True" ForeColor="#F7F7F7" />
          <RowStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" />
          <PagerStyle BackColor="#E7E7FF" ForeColor="#4A3C8C" HorizontalAlign="Right" />         
          <Fields>         
              <asp:BoundField DataField="id_tour" HeaderText="id_tour" SortExpression="id_tour" ReadOnly="false" />              
              <asp:BoundField DataField="data_inizio" HeaderText="data_inizio" SortExpression="data_inizio" />              
               <asp:BoundField DataField="data_fine" HeaderText="data_fine" SortExpression="data_fine" />              
              <asp:TemplateField HeaderText="agenzia ">                
                <ItemTemplate>
                <asp:dropdownlist  ID="agenzia" runat="server" DataSourceID="SqlDataSource3"
                    DataValueField="id_agenzia" DataTextField="nome_agenzia"   
                    SelectedValue='<%# Bind("id_agenzia") %>' />   
                 </ItemTemplate> 
            </asp:TemplateField> 
            <asp:BoundField DataField="codice_tour" HeaderText="codice_tour" SortExpression="codice_tour" />                         
             <asp:TemplateField HeaderText="responsabile ">
              <ItemTemplate>
              <asp:dropdownlist  ID="responsabile" runat="server" DataSourceID="SqlDataSource4"
                    DataValueField="id_responsabile" DataTextField="elementi_capogruppo"   
                    SelectedValue='<%# Bind("id_responsabile") %>' />
            </ItemTemplate> 
            </asp:TemplateField>
            <asp:TemplateField HeaderText="guida ">
              <ItemTemplate>
              <asp:dropdownlist  ID="guida" runat="server" DataSourceID="SqlDataSource5"
                    DataValueField="id_guida" DataTextField="elementi_guida"   
                    SelectedValue='<%# Bind("id_guida") %>' />
            </ItemTemplate> 
            </asp:TemplateField>
               
              <asp:BoundField DataField="pax" HeaderText="pax" SortExpression="pax" />
              <asp:BoundField DataField="luogo_partenza" HeaderText="luogo_partenza" SortExpression="luogo_partenza" />
              <asp:BoundField DataField="luogo_arrivo" HeaderText="luogo_arrivo" SortExpression="luogo_arrivo" />
            
              <asp:TemplateField HeaderText="luogo ritiro ">
              <ItemTemplate>
              <asp:dropdownlist  ID="id_luogo_ritiro" runat="server" DataSourceID="SqlDataSource6"
                    DataValueField="id_luogo_ritiro" DataTextField="luogo"   
                    SelectedValue='<%# Bind("id_luogo_ritiro") %>' />
            </ItemTemplate> 
            </asp:TemplateField>
            <asp:TemplateField HeaderText="luogo consegna ">           
            <ItemTemplate>
              <asp:dropdownlist  ID="luogo_consegna" runat="server" DataSourceID="SqlDataSource6"
                    DataValueField="id_luogo_ritiro" DataTextField="luogo"   
                    SelectedValue='<%# Bind("id_luogo_consegna") %>' />
            </ItemTemplate> 
            </asp:TemplateField>             
               
              <asp:BoundField DataField="pax_riserva" HeaderText="pax_riserva" SortExpression="pax_riserva"  />
              <asp:TemplateField HeaderText="modalita pagamento  ">           
            <ItemTemplate>
              <asp:dropdownlist  ID="modalita_pagamento" runat="server" DataSourceID="SqlDataSource7"
                    DataValueField="id_tipo_pagamento" DataTextField="descrizione"   
                    SelectedValue='<%# Bind("modalita_pagamento") %>' />
            </ItemTemplate> 
            </asp:TemplateField> 
             <asp:TemplateField HeaderText="tipo prenotazione  ">           
            <ItemTemplate>
              <asp:dropdownlist  ID="tipo_prenotazione" runat="server" DataSourceID="SqlDataSource8"
                    DataValueField="id_tipo_prenotazione" DataTextField="descrizione"   
                    SelectedValue='<%# Bind("tipo_prenotazione") %>' />
            </ItemTemplate> 
            </asp:TemplateField>  
              <asp:BoundField DataField="note_tour" HeaderText="note_tour" SortExpression="note_tour" />
               <asp:BoundField DataField="costo_unitario" HeaderText="costo_unitario" SortExpression="costo_unitario" />
              <asp:BoundField DataField="confermato" HeaderText="confermato" SortExpression="confermato" />
                <asp:TemplateField HeaderText="canale riservato  ">           
            <ItemTemplate>
              <asp:dropdownlist  ID="canale_riservato" runat="server"  DataSourceID="ObjectDataSource1"
                    DataValueField="canale" DataTextField="canale"   
                    SelectedValue='<%# Bind("canale_riservato") %>' />
            </ItemTemplate> 
            </asp:TemplateField>   
              
              
              
              <asp:CommandField ShowDeleteButton="True" ShowEditButton="True" ShowInsertButton="True" />
          </Fields>
          <HeaderStyle BackColor="#4A3C8C" Font-Bold="True" ForeColor="#F7F7F7" />
          <AlternatingRowStyle BackColor="#F7F7F7" />
      </asp:DetailsView>
    <asp:ObjectDataSource ID="ObjectDataSource2" runat="server"  
        SelectMethod="recupera_prenotazione" 
          TypeName="prenotazione"
        UpdateMethod="aggiorna_prenotazione"          
        >
        <SelectParameters>
             <asp:ControlParameter ControlID="GridView1" Name="id_tour" PropertyName="SelectedValue"
                  Type="Int32" />
        </SelectParameters>
         <UpdateParameters>
                          <asp:Parameter Name="canale_riservato" Type="string" />
        </UpdateParameters>
    </asp:ObjectDataSource>

    public DataSet recupera_prenotazione(int id_tour)
    {
       
        mio_numero_tour = id_tour;
    connStr = ConfigurationManager.ConnectionStrings["connessione"].ConnectionString;
    
     using (SqlConnection myConnection = new SqlConnection(connStr))
            {
                myConnection.Open();
                string selectsql = "SELECT id_tour,[data_inizio], [data_fine], [id_agenzia], [id_responsabile], [id_guida], [pax],codice_tour, [luogo_partenza], [luogo_arrivo], [id_luogo_ritiro], [id_luogo_consegna], [bkr_data_ora], [pax_riserva], [modalita_pagamento], [tipo_prenotazione], [costo_unitario], [confermato], [canale_riservato],note_tour,tipo_prenotazione,modalita_pagamento,pax_riserva,costo_unitario FROM [tab_prenotazione_giornalieri] WHERE ([id_tour] = @id_tour) ";
                 SqlDataAdapter adapter = new SqlDataAdapter(selectsql, myConnection);
                adapter.SelectCommand.Parameters.Add("@id_tour", SqlDbType.Int).Value = id_tour;
                
                DataSet ds = new DataSet();
                adapter.Fill(ds, "radio");
                myConnection.Close();
                return ds;
               

    }
}
    public void aggiorna_prenotazione(string canale_riservato)
    {
        connStr = ConfigurationManager.ConnectionStrings["connessione"].ConnectionString;
        using (SqlConnection myConnection = new SqlConnection(connStr))
        {
            myConnection.Open();

            SqlCommand mese_cmd = myConnection.CreateCommand();
            mese_cmd.CommandType = CommandType.Text;
            mese_cmd.CommandText = "UPDATE tab_prenotazione_giornalieri set canale_riservato=@canale_riservato where id_tour=@original_id_tour";
            mese_cmd.Parameters.Add("@canale_riservato", SqlDbType.NVarChar,10).Value = canale_riservato;


            mese_cmd.ExecuteNonQuery();
            myConnection.Close();
        }
    
}
arnymore wrote:
da stamattina sto provando a inoltrarmi nella collaborazione db objectdatasource.mentre il select tramite dataobject è banale e riesce subito, l'update mi da sempre è comunque un messaggio criptico,inquietante ma a quanto pare diffuso :"impossibile trovare un metodo non generico "etc etc

una premessa: usare così l'ObjectDataSource non ti da' quasi nessun vantaggio, perchè di fatto usi il DataSet come contenitore ed una logica ancora piatta, però già che ne hai intravisto i vantaggi è un buon inizio
cmq, l'errore è dovuto al fatto che quando usi l'ObjectDataSource, devi passare o un oggetto completo (meglio) oppure la sequenza degli stessi campi, invece tu passi solo una stringa, così non riesce a trovare un metodo che gli vada bene e ti da' questo errore.

la soluzione migliore? butta un occhio a questo webcast:
http://media.aspitalia.com/webcast/1032299459.media

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP
29 messaggi dal 25 gennaio 2002
Grazie per la risposta e per l'ottimo webcast , ci vediamo a firenze
arnymore wrote:
Grazie per la risposta e per l'ottimo webcast , ci vediamo a firenze

prego, ci vediamo sì!

Daniele Bochicchio | ASPItalia.com | Libri
Chief Operating Officer@iCubed
Microsoft Regional Director & MVP

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.