none
salvare i dati di una ViewGrid in una Tabella di un DataBase con estensione .mdf RRS feed

  • Domanda

  • ho un dataset, un yBindingSource, un yTableAdapter, un TableAdapterManager, un binding navigator, e non so come fare.  Se uso il Salva del BindingNavigetor mi manda pure in errore. Quando apro il programma per l'editing il DataBase.mdf ha una crocettina rossa che diventa nera con aggiorna. Serve, non serve? Insomma come si gestisce attraverso la ViewGrip, anche da software la gestione della tabella e come si salva tutto nel dataBase?
    domenica 22 maggio 2011 12:43

Tutte le risposte

  • ho un dataset, un yBindingSource, un yTableAdapter, un TableAdapterManager, un binding navigator, e non so come fare.  Se uso il Salva del BindingNavigetor mi manda pure in errore. Quando apro il programma per l'editing il DataBase.mdf ha una crocettina rossa che diventa nera con aggiorna. Serve, non serve? Insomma come si gestisce attraverso la ViewGrip, anche da software la gestione della tabella e come si salva tutto nel dataBase?


    Ciao einrix,

     

    suppongo che tu abbia creato un applicazione windowsform con database , e importante intanto sapere che tipo di errorre viene generato quando esegui l'update,

    la crocettina rossa e la successiva icona di  unapresa nera che vedi indicano lo stato della connessione attuale,

    Per poter eseguire l'insert, l'update e delete dei dati  , devi eseguire la procedura guidata del dataset , ed alla fine trascinare tutta la griglia che avrai nelle finestra

    origini dati sul form mediante il trascinamento.

     

    Ciao se hai domande non esitare a chiedere. 


    Carmelo La Monica  http://community.visual-basic.it/carmelolamonica/
    domenica 22 maggio 2011 14:04
  • Ricomincio da capo descrivendo l'intera sequenza per arrivare in modo documentato al punto in cui entro in crisi.

     

    -Apro un Nuovo progetto> Applicazione Windows Form> nome Pippo>

    -Dati> Aggiungi nuova origine dati>

    Origine dei dati: DataBase>

    Modello dataBase: DataSet>

    Seleziona connessione dati: DBFunghi.mdf (data Base esistente in una cartella di altro programma): nuova connessione>

    Aggiungi connessione: origine dei dati: File di database Microsoft SQL Server

    Nome file di database(esistente):L:\Silos\Lavori VB 2010 Express\EsercizioSuiDataBase\DBFunghi02.mdf

    Usa autenticazione di Windows:Checked

    Test di connessione: OK

    OK>

    -Seleziona connessione dati: DBFunghi02.mdf>

    Stringa di connessione:

    Data Source=.\SQLEXPRESS;AttachDbFilename="L:\Silos\Lavori VB 2010 Express\EsercizioSuiDataBase\DBFunghi02.mdf";Integrated Security=True;Connect Timeout=30;User Instance=True

    Avanti>

    Copia il file di dati locali della connessione, nella Directory? Si>

    Salva stringa di connessione nel file di configurazione dell'applicazione: SI, salva col nome: DBFunghi02ConnectionString, avanti>

     

    Mi chiede di selezionare gli oggetti del database. Oltre alle tabelle, seleziono anche Visualizzazioni, stored procedure e funzioni. Il nome di DataSet è DBFunghi02DataSet. Fine>

     

    -A questo punto in Esplora soluzioni ho il programma Pippo con le cartelle

    my Project

    App.config

    DBFunghi02.mdf

    DBFunghi02DataSet.xsd

    Form1.vb

     

    -E i origine dati ho il

    DBFunghi02DataSet (Data base)

    ClassificazioneFunghi (Tabella)

     

    -è qui che dalla combo della tabella classificazione funghi che seleziono dataGridView e trascino il simbolo della griglia da origine dati al form1.

    E' adesso che mi ritrovo sotto gli oggetti

    DBFunghi02DataSet

    ClassificazioneFunghiBindingSource

    ClassificazioneFunghiTableAdapter

    TableAdapterManager

    ClassificazioneFunghiBindingNavigator

     

    -e nel form, sia la griglia che la barra di tipo ToolStrip per la gestione della tabella

     

    -Il software generato da queste operazioni è:

     

    Public Class Form1

     

    Private Sub ClassificazioneFunghiBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ClassificazioneFunghiBindingNavigatorSaveItem.Click

    Me.Validate()

    Me.ClassificazioneFunghiBindingSource.EndEdit()

    Me.TableAdapterManager.UpdateAll(Me.DBFunghi02DataSet)

     

    End Sub

     

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    'TODO: questa riga di codice carica i dati nella tabella 'DBFunghi02DataSet.ClassificazioneFunghi'. È possibile spostarla o rimuoverla se necessario.

    Me.ClassificazioneFunghiTableAdapter.Fill(Me.DBFunghi02DataSet.ClassificazioneFunghi)

     

    End Sub

    End Class

     

     

    -A questo punto lancio il programma che si apre senza errori, e compare la tabella con le cinque righe già scritte in precedenza.

     

    -Provo a modificare una cella: la modifica nella grid, riesce. A questo punto (ho già spostato il cursore per assicurarmi che la modifica sia avvenuta, almeno sulla griglia) premo il tasto salva. Premuto una prima volta non mi è andato nell'errore solito. Allora l'ho ripremuto (dovrebbe essere legale salvare quante volte si vuole) e mi va in errore alla riga:

    Me.TableAdapterManager.UpdateAll(Me.DBFunghi02DataSet)

    la segnalazione dell'errore è:

    «Update richiede un UpdateCommand valido se la raccolta DataRow viene passato con righe modificate».

     

    -Chiudo il programma, lo riavvio, aggiorno ancora una casella, premo save: non succede nulla.

    Questa volta chiudo il programma prima che vada nuovamente in errore, aspettandomi che abbia salvato, e invece, se lo riavvio vedo che la cella non è stata affatto modificata. E qui mi sono fermato. Grazie per l'ascolto.

    domenica 22 maggio 2011 19:46
  • errata corrige:

    quel DBFunghi.mdf circa a riga 7 va letto DBFunghi02.mdf

    domenica 22 maggio 2011 19:51