Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    252

    vs10[silverlight] da grid a dataform a datasource

    sto lavorando con i RiaService in asp

    ho creato una finestra secondaria che contiene un dataform per l'inserimento di dati di una tabella, e avrei bisogno di recuperare questi dati da una datagrid della pagina principale.

    quindi pagina1 con datagrid1 (visualizza dati della tabella1)

    -> catturare la riga selezionata

    e visualizzarla nel dataform1 della pagina secondaria per non riscrivere il contenuto dei campi. (salva nella tabella2)

  2. #2
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    252
    aiutoooooo!!!1

    nessuna idea???

    se salvo i dati della grid in questo modo:

    ho creato il dataform con valore

    codice:
    dataForm:DataForm x:Name="dataForm1" Header="Acquista Giocatore" IsReadOnly="True"
                                       AutoGenerateFields="False" HorizontalAlignment="Left"
                                       AutoEdit="True"  AutoCommit="True" Width="400" 
                                           CommandButtonsVisibility="None"
                                       CurrentItem="{Binding SelectedItem, ElementName=DataGrid1}" Margin="0,12,0,0">
    per salvare ho fatto così:

    codice:
     dataForm1.CommitEdit()
    
            Dim _OrganizationContext As OrganizationContext = AcquistaDataSource.DomainContext
            _OrganizationContext.ACQUISTATIs.Add(dataForm1.CurrentItem)
            AcquistaDataSource.SubmitChanges()
    Mi fa vedere i dati della grid1 nel dataform chee fin qui ci sono. Però poi per salvare i dati del dataform in una tabella diversa da quella di origine, mi da questo errore:

    EntitySet con Type 'Fantacalcio.ACQUISTATI' non può contenere istanze di Type 'Fantacalcio.CALCIATORI'.
    Nome parametro: entity


    ovviamente i dati della grid1 vengono dalla tabella CALCIATORI mentre il salvataggio lo devo fare in ACQUISTATI

  3. #3
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,536
    beh senza sapere come sono le relazioni nel tuo db diventa parecchio difficile aiutarti

    probabilmente dovrai creare un nuovo tipo ACQUISTATI indicando come (ad esempio) ID_Calciatore l'id del calciatore e chessò l'id della squadra o gli altri dati necessari, dopo aggiungerla a ACQUISTATIs

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    252
    asp però altrimenti mi mandi piu fuori di prima...

    le due tabelle non hanno relazioni tra loro perchè non ci salvo i stessi tipi di dati (se per relazioni intendi che l'id richiama lo stesso id nell'altra tabella)

    ho due tabelle distinte una con 12 campi e una con 5 . Voglio solo riportare 5 di quei campi dalla tabella calciatori alla tabella acquistati.

    dici che ti ho capito??? e che te hai capito cosa ho sotto mano????

    nel servizio nei metadata non ho campi dichiarati con la dipendenza del tipo of(T) se è quello che intendevi te...

    o devo farlo cmq per spostarli da una tabella all'altra?

  5. #5
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,536
    Originariamente inviato da garzone
    asp però altrimenti mi mandi piu fuori di prima...

    le due tabelle non hanno relazioni tra loro perchè non ci salvo i stessi tipi di dati (se per relazioni intendi che l'id richiama lo stesso id nell'altra tabella)

    ho due tabelle distinte una con 12 campi e una con 5 . Voglio solo riportare 5 di quei campi dalla tabella calciatori alla tabella acquistati.

    dici che ti ho capito??? e che te hai capito cosa ho sotto mano????

    nel servizio nei metadata non ho campi dichiarati con la dipendenza del tipo of(T) se è quello che intendevi te...

    o devo farlo cmq per spostarli da una tabella all'altra?
    mmm... non sei obbligato ad avere relazioni tra tabelle, ma...

    comunque se tu hai 5 campi (ad esempio della tabella calciatori come immagino che sia) che vuoi riportare sulla tabella con 12 (magari la tabella acquisti) allora devi copiarti i dati dal tipo CALCIATORI (quindi il CurrentItem con cast al tipo CALCIATORI) nei campi che ti interessano del tipo ACQUISTATI.

    se ad esempio hai nella tabella ACQUISTATIs i campi Nome Cognome ecc devi creare un istanza del tipo ACQUISTATI, impostare la proprietà (ad esempio) aquistato.Nome = calciatore.Nome e/o aquistato.Cognome = calciatore.Cognome ecc, poi nella tabella AQUISTATIs fai add(aquistato) (dove aquistato è la nuova istanza di tipo ACQUISTATI e calciatore e il tipo CALCIATORI ricavato dal cast di CurrentItem).

    Comunque se vuoi un cosiglio (un'altro ) lavora con dati relazionati. oltre ad avere molti meno dati duplicati lavori decisamente meglio.
    (e cerca di utilizzare il pattern MVVM )

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    252
    Originariamente inviato da U235
    mmm... non sei obbligato ad avere relazioni tra tabelle, ma...

    comunque se tu hai 5 campi (ad esempio della tabella calciatori come immagino che sia) che vuoi riportare sulla tabella con 12 (magari la tabella acquisti) allora devi copiarti i dati dal tipo CALCIATORI (quindi il CurrentItem con cast al tipo CALCIATORI) nei campi che ti interessano del tipo ACQUISTATI.

    IN REALTA' DAI 12 PRENDO I 5 QUINDI GLI ALTRI DATI NON MI SERVONO PIU'

    se ad esempio hai nella tabella ACQUISTATIs i campi Nome Cognome ecc devi creare un istanza del tipo ACQUISTATI, impostare la proprietà (ad esempio) aquistato.Nome = calciatore.Nome e/o aquistato.Cognome = calciatore.Cognome ecc, poi nella tabella AQUISTATIs fai add(aquistato) (dove aquistato è la nuova istanza di tipo ACQUISTATI e calciatore e il tipo CALCIATORI ricavato dal cast di CurrentItem).

    COME LA SCRIVO QUESTA ISTANZA???

    Comunque se vuoi un cosiglio (un'altro ) lavora con dati relazionati. oltre ad avere molti meno dati duplicati lavori decisamente meglio.
    (e cerca di utilizzare il pattern MVVM )

    MA MO CHE E' STA ROBA QUA....

  7. #7
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,536
    Originariamente inviato da garzone
    IN REALTA' DAI 12 PRENDO I 5 QUINDI GLI ALTRI DATI NON MI SERVONO PIU'
    ok, allora prendi solo i 5 che ti servono, gli altri non ho idea di cosa servano (a dire il vero nemmeno i 5 so cosa sono )
    Originariamente inviato da garzone
    COME LA SCRIVO QUESTA ISTANZA???
    acquistato = New Fantacalcio.ACQUISTATI()

    Originariamente inviato da garzone
    MA MO CHE E' STA ROBA QUA....
    lasciamo stare, lo vedremo più avanti se vorrai
    diciamo che è un modo per scrivere codice... ma non fa nulla, meglio procedere passo dopo passo

    P.S.
    non "gridare", riesco a leggere anche in minuscolo

  8. #8
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    252
    ma lo avevo fatto già credo....
    però poi non mi assegnava i valori della grid sul form

    cioè avevo messo in new()

    inizializeComponent()
    acquistato = new ACQUISTATI
    dataform.currentItem = acquistato
    dataform.beginedit()
    end sub

    nel button_click
    dataForm1.CommitEdit()

    Dim _OrganizationContext As OrganizationContext = AcquistaDataSource.DomainContext
    _OrganizationContext.ACQUISTATIs.Add(acquistato)
    AcquistaDataSource.SubmitChanges()
    end sub


    Private Sub DataGrid1_SelectionChanged(sender As System.Object, e As System.Windows.Controls.SelectionChangedEventArgs) Handles DataGrid1.SelectionChanged
    dataForm1.CurrentItem = DataGrid1.SelectedItem

    End Sub

    scusa per l'urlo era per differenziare quello che scrivevo ....
    bastava separare i "code"

  9. #9
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,536
    Originariamente inviato da garzone
    ma lo avevo fatto già credo....
    però poi non mi assegnava i valori della grid sul form

    cioè avevo messo in new()

    inizializeComponent()
    acquistato = new ACQUISTATI
    dataform.currentItem = acquistato
    dataform.beginedit()
    end sub

    nel button_click
    dataForm1.CommitEdit()

    Dim _OrganizationContext As OrganizationContext = AcquistaDataSource.DomainContext
    _OrganizationContext.ACQUISTATIs.Add(acquistato)
    AcquistaDataSource.SubmitChanges()
    end sub


    Private Sub DataGrid1_SelectionChanged(sender As System.Object, e As System.Windows.Controls.SelectionChangedEventArgs) Handles DataGrid1.SelectionChanged
    dataForm1.CurrentItem = DataGrid1.SelectedItem

    End Sub

    scusa per l'urlo era per differenziare quello che scrivevo ....
    bastava separare i "code"
    no fa nulla per l'urlo
    usa i tag [ CODE] [ /CODE] (senza spazi) per formattare il codice, se no è poco leggibile.

    dataForm1 con il tuo codice attuale (non quello che hai scritto) credo che contenga il tipo CALCIATORI a giudicare dall'errore come source dei dati, quindi CurrentItem dovrebbe contenere il tipo CALCIATORI che servirà per ricavare i dati che ti servono da mettere nella tabella ACQUISTATIs che quasi certamente contiene il tipo ACQUISTATI, quindi se tu vuoi aggiungere un nuovo ACQUISTATI devi creare l'istanza
    codice:
     acquistato = new ACQUISTATI()
    ma non nel New(), dentro button_click.
    Probabilmente calciatore lo ricaverai con
    codice:
    calciatore = DirectCast(dataForm1.CurrentItem, CALCIATORI)
    poi da li fai quello che ti ho indicato prima, ovvero
    codice:
     acquistato.TuoCampo = calciatore.TuoCampo
    ecc...

  10. #10
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    252
    ok ho fatto così vediamo se va bene.... qualcosa è cambiato!

    nel button:
    codice:
    dataForm1.CommitEdit()
            Dim NewAcquistati = New ACQUISTATI()
            Dim Calciatore = DirectCast(dataForm1.CurrentItem, CALCIATORI)
            NewAcquistati.ID = calciatore.ID
            NewAcquistati.CALCIATORE = Calciatore.CALCIATORE
            NewAcquistati.RUOLO = Calciatore.RUOLO
            NewAcquistati.SQUADRA = Calciatore.SQUADRA
            NewAcquistati.PREZZOACQUISTO = Calciatore.PREZZOACQUISTO
    
            Dim _OrganizationContext As OrganizationContext = FantacalcioDataSource.DomainContext
            _OrganizationContext.ACQUISTATIs.Add(NewAcquistati)
            FantacalcioDataSource.SubmitChanges()
    Ora mi dice che non ha salvato i dati e devo controllare l'entity per ogni entità in entityInError???????

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.