13 messaggi dal 07 giugno 2007
Dunque ho scaricato e installato il connector (partiamo da zero) ma c'è qualcosa che non va.
Nella soluzione infatti (a parte che non lo vedo nei tipi di connessione db) mi da errore già nel caricamento, senza che lo richiami nella pagina.

Errore  1  XXXX\test2.aspx: errore di runtime ASP.NET: Impossibile caricare il file o l'assembly 'MySql.Data, Version=5.0.7.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d' o una delle relative dipendenze. Impossibile trovare il file specificato. (XXX\web.config line 31)  XXX\test2.aspx


Nel web config a quella riga difatti c'è la stringa di mysql che si è creata automaticamente

<add assembly="MySql.Data, Version=5.0.7.0, Culture=neutral, PublicKeyToken=C5687FC88969C44D"/>
13 messaggi dal 07 giugno 2007
ok ok, un altro passo:)

C'era un problema perchè caricava sia il driver 5.0.7 sia il 5.1. Ho tolto il 5.07 dal WebConfig e ora non da + quell'errore.

Bene..adesso provo a proseguire con i consigli di prima... vi tengo aggiornati :)

Intanto grazie! ma son sicure che tra poco tornerò ;)
ok perfetto, non ti preoccupare in caso ti problemi siamo quà.

rigurado al fatto che non vedi il db MySql tra quelli nel sistema è che di fatto il Visual Web Developer 2005 non è supportato da MySql.

ciao marco

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

http://nostromo.spaces.live.com/default.aspx
13 messaggi dal 07 giugno 2007
FUNZIONA :D
O meglio : funziona la connessione senza ODBC, primo passo c'è !

Adesso passo alla domanda originaria del post.
nella prima Grid ho un elenco, nella seconda vorrei fare una ricerca, ad esempio.
Lo script adattato qua sotto è preso da un altro forum... ma credo che ci sia qualcosa che non va.

Adesso il discorso è come passare dei valori tramite
1) Ricerca
2) clic sul "seleziona" di una riga
3) aggiornare i valori di una riga


Come updatecommand sto provando questo ...
 UpdateCommand="Update TASKS_level1 
                                inner join TASKS_users on id=l1_supervisor
                                set l1_titolo=?l1_titolo
                                where idlevel1=?idlevel1




 <form id="form1" runat="server">
    <div>
        <!-- Primo sqldatasource. Ricava tutti i record -->
        <asp:SqlDataSource 
            ID="SQLTutti" 
            runat="server" 
            ProviderName="MySql.Data.MySqlClient"
            ConnectionString="XXX" 
            SelectCommand="SELECT l1_titolo,l1_testo,concat(nome,' ',cog) as supervisore FROM TASKS_level1 inner join TASKS_users on id=l1_supervisor;"> 
        </asp:SqlDataSource>

        <!-- Secondo sqldatasource. Ricava i record filtrandoli per il nome con l'operatore LIKE -->
        <asp:SqlDataSource ID="SQLFiltrato" runat="server"  
        ProviderName="MySql.Data.MySqlClient"
        ConnectionString="XXX" 
        SelectCommand="SELECT l1_titolo,l1_testo,concat(nome,' ',cog) as supervisore 
                            FROM TASKS_level1 inner join TASKS_users on id=l1_supervisor
                            where l1_titolo like ?
                            ;"> 
            <SelectParameters>
                <asp:Parameter Name="nome" Size="20" Type="String" DefaultValue="" />
            </SelectParameters>
        </asp:SqlDataSource> 

        <!-- GridView, ovvero il controllo che visualizzerà le righe risultanti -->
        <asp:GridView runat="server" ID="GW1" DataSourceID="SQLTutti" AutoGenerateColumns="true">
        </asp:GridView>
        
        <!-- TextBox e Bottone per la ricerca (filtro) -->
        <asp:TextBox ID="TxtNome" runat="server" ></asp:TextBox>
        <asp:Button ID="BtnCerca" runat="server" Text="Ricerca" />

       </div>
    </form>

Modificato da Threepwood il 08 giugno 2007 16.11 -
13 messaggi dal 07 giugno 2007
L'update funziona :)

Adesso volevo far si, come da titolo del post, che clicco su "selziona" e mi genera una sub tabella in base all'ID selezionato.

E qui sono davvero fermo :)
nel caso in cui vuoi "filtrare" SQLFiltrato con il valore inserito nella TextBox usare al posto del <asp:Parameter un <asp:ControlParameter.

devi specificare il nome del controllo associrato, tramite la proprietà ControlID e il nome del parametro.

che deve coincidere con quello della query, come saprei in MySql i parametri sono preceduti da ?, quindi

FROM TASKS_level1 inner join TASKS_users on id=l1_supervisor
where l1_titolo like ?NomeParametro

domanda, ma non voleve filtrare il secondo GridView in base alla selezione del primo?

ciao marco

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

http://nostromo.spaces.live.com/default.aspx
13 messaggi dal 07 giugno 2007
Dunque, con ControlParameter Name="l1_titolo" mi da errore:n ControlID deve essere specificato in ControlParameter 'l1_titolo'.

cmq l'obiettivo è iniziare a lavorare con i database.

Lo schema di DB è su 4 livelli ma molto semplice:

tabella TASKS_level1
l1_titolo
l1_testo

tabella TASKS_level2
l2_titolo
l2_testo
l2_l1

... e via via con le altre 2 tabelle.
Ogni l2_l1, l3_l2 (etc) contiene l'id del padre.

Vorrei fare che quando clicco sul primo seleziona del level1, mi porta alla tabella relativa del level 2 (o nella stessa pagina o in nuova)
prendo sempre il tuo post precedente come esempio.

nel tuo caso il control paramater deve essere così impostato:

<asp:ControlParameter Name="l1_titolo" ControlID="TxtNome" >

oltre che per le semplici TextBox puoi usare il control parameter anche con il GridView.

ad esempio:

<asp:ControlParameter Name="l1_titolo" ControlID="GW1" >

una proprietà che non ti ho mai detto di settare è PropertyName ovvera la proprietà il cui valore viene assegnato al parametro.

non è necessario specificarla perche il runtime asp.net è in grado di sapere che per la TextBox si stratta della proprietà Text mentre per la GridView è SelectedValue.

detto questo imposta la proprietà DataKeyNames del tuo GridView alla chiave primaria che sui nel db.

adesso ho poco tempo non riesco a postarti del codice.

comqune ogni esempio che trovi su come organizzare pagine Maste/Details fatto per SqlServer è valido per MySql naturalmente cambiano solo le query

ciao marco
Modificato da nostromo il 08 giugno 2007 16.59 -

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.