Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    10

    [VB.NET 2005] Salvataggio su DB con Pocket PC 2003

    Ciao a tutti,

    Io sto lavorando su un piccolo progetto per Smart Device utilizzando Pocket PC 2003 di Visual Basic.Net 2005. Sono alle prime armi quindi, anche un pò(direi molto) inesperto, ho trovato dei problemi nel salvare su database dei campi da me inseriti. Praticamente riesco ad accedere al database e vedere i campi che contiene, riesco ad inserire un nuovo record, ma quando utilizzo l'istuzione per salvare (che ho preso dalla guida in linea) se esco dall'applicazione e rientro i dati non vengono salvati.

    La cosa strana che ho fatto delle prove anche utilizzando VB.NET dove c'è un controllo apposito (BindingNavigator) che permette di scorrere i record, crearne uno, eliminarlo e salvarlo. ma anche qui non funziona il salvataggio.

    Questo è il link della guida in linea, con la lezione inerente a quello che ho appena detto:

    http://msdn2.microsoft.com/it-it/lib...7c(VS.80).aspx

    In quella successiva c'è un altro modo per salvare i dati, ma indovinate un pò, non funziona neanche quello.

    Nel pocket pc 2003, questo controllo non c'è, però sono riuscito a trovare il modo per inserire un nuovo record, ora il problema è salvarlo.

    Di seguito scrivo il codice del primo form (ce ne sono altri due summaryview.vb e editview.vb), dove c'è il pulsante salva. Io ho ripreso questo progetto pari pari dalla guida in linea le uniche modifiche che ho fatto sono evidenziate in rosso;l'istruzione prima di essere modificata era cosi: DialogResult.OK e l'altro .Cancel, ma mi usciva fuori un avviso, cosi ho seguito il suggerimento che dà in automatico VB 2005. Che dite può essere per questo che ora ho dei problemi?? La Parte in Blu è quella del codice del pulsante salva...forse è quella che non va!!

    codice:
    Imports System
    Imports System.Data
    Imports Microsoft.WindowsCE.Forms
    Imports System.Windows.Forms
    Public Class Form1
    
    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 'NorthwindDataSet.Products'. È possibile spostarla o rimuoverla se necessario.
    Me.ProductsTableAdapter.Fill(Me.NorthwindDataSet.P roducts)
    End Sub
    
    ' Add New Record.
    Private Sub MenuItem1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem1.Click
    ProductsBindingSource.AllowNew = True
    ProductsBindingSource.AddNew()
    
    ' Pass the binding source to the form.
    Dim EditViewDialog As New EditView(ProductsBindingSource)
    If EditViewDialog.ShowDialog() <> Windows.Forms.DialogResult.OK Then
    ProductsBindingSource.CancelEdit()
    Else
    ProductsBindingSource.EndEdit()
    Me.ProductsTableAdapter.Update(Me.NorthwindDataSet )
    End If
    End Sub
    
    ' Edit Record.
    Private Sub MenuItem2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem2.Click
    
    ' Pass the binding source to the form.
    Dim EditViewDialog As New EditView(ProductsBindingSource)
    If EditViewDialog.ShowDialog() <>  Windows.Forms.DialogResult.Cancel Then
    ProductsBindingSource.CancelEdit()
    Else
    ProductsBindingSource.EndEdit()
    Me.ProductsTableAdapter.Update(Me.NorthwindDataSet )
    End If
    End Sub
    
    ' Action button pressed.
    Private Sub DataGrid1_KeyDown(ByVal sender As System.Object, _
    ByVal e As System.Windows.Forms.KeyEventArgs) _
    Handles DataGrid1.KeyDown
    If (e.KeyCode = Keys.Enter) Then
    Dim SummaryViewDialog As New SummaryView(ProductsBindingSource)
    ' SummaryViewDialog.ShowDialog()
    End If
    End Sub
    
    'Pulsante salva
    
    Private Sub MenuItem4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem4.Click
    Me.ProductsBindingSource.EndEdit()
    Me.ProductsTableAdapter.Update(Me.NorthwindDataSet .Products)
    Me.NorthwindDataSet.AcceptChanges()
    End Sub
    
    Private Sub MenuItem5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem5.Click
    Close()
    End Sub
    End Class
    Se qualcuno leggendo il codice si accorgesse di qualche errore sarei felice se me lo comunicasse. Oppure se volete sono disposto ad inviare l'intero programma per e-mail, quindi se qualcuno fosse interessato mi faccia sapere!



    l'url della guida in linea che ho utilizzato per sviluppare questo piccolo progetto è questo:
    http://msdn2.microsoft.com/it-it/lib...84[/url](VS.80).aspx


    Aspetto con ansia qulsiasi vostro aiuto!!

    Ciao a tutti!!

  2. #2
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    10
    In alternativa, c'è qualcuno che pazientemente mi sa spiegare per bene come connettermi ad un DB, visualizzarlo, inserire e cancellare dei record in modo poi che le modifiche rimangano??

    ho un imminente bisogno di imparare a fare queste cose, non mi importa come, basta che ci riesco, sempre utilizzando un applicazione Pocket PC 2003 di VB.NET 2005

    se c'è qualcuno che mi può rispondere vi sarò grato

    ciao a tutti!!

  3. #3
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    10

    [VB.NET] Salvare dati su db

    Sto facendo un programma per Pocket PC 2003 utilizzando VB.NET 2005 ho qualche problema nel salvare dati su un DB.

    Ho trovato un modo molto veloce per modificare/aggiungere dei dati di un datagrid

    Ho creato un piccolissimo DB che si chiama NuovoDataset.xsd, in cui ho una tabella che si chiama RFID e due colonne chiamate:ID Scheda e Testo Scheda.
    Tramite la procedura guidata ho aggiunto il mio db al progetto ed inserendo un datagrid nel form1 visualizzo le due colonne sopra citate.

    Seguendo le istruzioni della guida in linea, ho selezionato il datagrid e cliccando sul triangolino in altro a destra, ho aperto una finestra di opzioni, dalla quale ho selezionato Genera Form dati.

    Facendo ciò sono state create in automatico altre due form:

    RFIDEditViewDialog.vb
    RFIDSummaryViewDialog.vb

    e nella form uno è stato aggiunto un pulsante nel mainmenù1 chiamato NEW.

    Se mando in esecuzione il programma, nel datagrid della form1 visualizzo le colonne presenti, e cliccando sul tasto new si apre la form RFIDeditview in cui sono presenti due testbox con rispettivi label che indicano i campi da inserire, cioè il nuovo id scheda e il nuovo testo scheda. un volta inseriti i dati, chiudo la form e torno in quella principale, qui il datagrid è stato aggiornato con il nuovo record aggiunto. La stessa cosa capita se provo a visualizzare un campo esistente e modificarlo: funziona a perfezione!!

    Se però chiudo l'applicazione e la rimando in esecuzione riecco il solito problema, i dati che avevo inserito/modificato non sono presenti.

    Cercando sulla guida in linea e sfruttando qualche suggerimento, ho inserito allora altri due pulsanti nel mainmenù1, Salva e Esci. Ho inserito il codice che sembra giusto, ma i risultati non cambiano.

    Questo è il codice del form1:

    codice:
    Imports System
    Imports System.Data
    Imports System.Windows.Forms
    
    
    
    Public Class Form1
    
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            If NuovoDataSetUtil.DesignerUtil.IsRunTime Then
                'TODO: eliminare questa riga di codice per rimuovere la proprietà AutoFill predefinita per 'NuovoDataSet.RFID'.
                Me.RFIDTableAdapter.Fill(Me.NuovoDataSet.RFID)
            End If
    
        End Sub
    
    
        Private Sub NewMenuItemMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NewMenuItemMenuItem.Click
            RFIDBindingSource.AddNew()
            Dim rfidEditViewDialog As scrivi_su_db.RFIDEditViewDialog = scrivi_su_db.RFIDEditViewDialog.Instance(Me.RFIDBindingSource)
            rfidEditViewDialog.ShowDialog()
    
        End Sub
    
        Private Sub RFIDDataGrid_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RFIDDataGrid.Click
            Dim rfidSummaryViewDialog As scrivi_su_db.RFIDSummaryViewDialog = scrivi_su_db.RFIDSummaryViewDialog.Instance(Me.RFIDBindingSource)
            rfidSummaryViewDialog.ShowDialog()
    
        End Sub
    
        Private Sub Salva_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Salva.Click
            Me.RFIDBindingSource.EndEdit()
            Me.RFIDTableAdapter.Update(Me.NuovoDataSet.RFID)
            NuovoDataSet.AcceptChanges()
        End Sub
    
        Private Sub Esci_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Esci.Click
            Close()
        End Sub
    End Class
    Questo il codice della form RFIDEditViewDialog.vb

    codice:
    Public Class RFIDEditViewDialog
    
        Private Sub RFIDEditViewDialog_Closing(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles MyBase.Closing
            Me.RFIDBindingSource.EndEdit()
    
        End Sub
    End Class
    Questo il codice della form RFIDSummaryViewDialog.vb

    codice:
      
    Public Class RFIDSummaryViewDialog
    
     Private Sub EditMenuItemMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles EditMenuItemMenuItem.Click
            Dim rfidEditViewDialog As scrivi_su_db.RFIDEditViewDialog = scrivi_su_db.RFIDEditViewDialog.Instance(Me.RFIDBindingSource)
            rfidEditViewDialog.ShowDialog()
            Me.Close()
    
        End Sub
    
        Private Sub RFIDSummaryViewDialog_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
            If (e.KeyCode = System.Windows.Forms.Keys.Up) Then
                Me.AutoScrollPosition = New System.Drawing.Point(0, ((0 - Me.AutoScrollPosition.Y) _
                                - 16))
                e.Handled = True
            End If
            If (e.KeyCode = System.Windows.Forms.Keys.Down) Then
                Me.AutoScrollPosition = New System.Drawing.Point(0, ((0 - Me.AutoScrollPosition.Y) _
                                + 16))
                e.Handled = True
            End If
            If (e.KeyCode = System.Windows.Forms.Keys.Up) Then
                'Su
                'Su
            End If
            If (e.KeyCode = System.Windows.Forms.Keys.Down) Then
                'Giù
                'Giù
            End If
            If (e.KeyCode = System.Windows.Forms.Keys.Left) Then
                'Sinistra
            End If
            If (e.KeyCode = System.Windows.Forms.Keys.Right) Then
                'Destra
            End If
            If (e.KeyCode = System.Windows.Forms.Keys.Enter) Then
                'Invio
            End If
    
        End Sub
    End Class
    Qualcuno di voi sa dirmi perchè i dati che immetto non rimangono scritti del DB??

    Oppure c'è qualcosa che devo settare per far si che i dati vengano inseriti??

    Devo magari impostare qualcosa sul dataset?

    Se qualcuno può aiutarmi gli sarò riconoscente... l'importante è che mi spieghi il tutto come se stesse spiegando qualcosa ad un demente (cosi mi sento in questa situazione) :berto:

    Aspetto con ansia qualche vostra risposta

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Ma tu sei sicuro che il metodo Update dell'oggetto Adapter venga effettivamente invocato? In caso contrario, le modifiche apportate ai dati non verranno salvate.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  5. #5
    Utente di HTML.it
    Registrato dal
    May 2007
    Messaggi
    10
    Ma tu sei sicuro che il metodo Update dell'oggetto Adapter venga effettivamente invocato? In caso contrario, le modifiche apportate ai dati non verranno salvate.
    Sinceramente non ne ho idea, come posso fare per esserne sicuro??

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.