Uno aiuto per creare agenda elettronica

di il
21 risposte

Uno aiuto per creare agenda elettronica

Salve,
voglio creare un' agenda elettronica con VB 2008 e SLQ server 2008, ho preparato la Monthcalendar con datagridview, l'idea è di inserire gli appuntamenti del giorno nella datagridview, cioè l' intestazione delle colonne sono i giorni della settimana associata alla monthcalendar, e le righe gli orari della giornata, ma non riesco a organizzare la datagridview con il database fisico.
Esempio

Ringrazio chi mi da una mano.

21 Risposte

  • Re: Uno aiuto per creare agenda elettronica


    Ben volentieri nel darti indicazioni.
    Stai facendo una windows o web application?
    I giorni della settimana sono già gestiti o stai proprio all'inizio?
    Ciao Lele
    P.S. il sito è tuo?
  • Re: Uno aiuto per creare agenda elettronica

    lele2006 ha scritto:



    Stai facendo una windows o web application?
    I giorni della settimana sono già gestiti o stai proprio all'inizio?
    Ciao Lele
    P.S. il sito è tuo?
    Ciao Lele, grazie dell'aiuto, è un' applicazione windows, i giorni della settimana li ho già gestiti, cioè l'utente quando clicca in un giorno qualsiasi della settimana nella MonthCalendar si ha l'intestazione delle colonne Datagridview.
    Ora il problema è come faccio a gestire gli orari della giornata? è farsi che la datagridview mi rimane con le righe da poter inserire gli appuntamenti?
  • Re: Uno aiuto per creare agenda elettronica

    Per l'orario intendi il caricamento o salvataggio dei dati?
    Per il caricamento, utilizza una colonna, e poi riga per riga di quella colonna la valorizza con un ciclo for (con step da 30).
    Ciao Lele
  • Re: Uno aiuto per creare agenda elettronica

    lele2006 ha scritto:


    Per l'orario intendi il caricamento o salvataggio dei dati?

    Ciao Lele
    Si caricacamento, poi di conseguenza il salvataggio dei dati nel database fisico.
  • Re: Uno aiuto per creare agenda elettronica

    Nell'evento load della form, metti un ciclo for, che effettua l'operazione di creazione di una riga e che valorizza la prima colonna.
    Puoi usare un dataTable e poi associarlo al controllo griglia.
    Ciao Lele
  • Re: Uno aiuto per creare agenda elettronica

    Lele,
    ho aggiunto le righe come mi hai indicato
    'aggiunta di riga con orario della giornata
    For riga As Integer = 0 To 28
    dgv.Columns(0).HeaderText = String.Format("Ora")

    Next
    dgv.Rows.Add("8:00")
    dgv.Rows.Add("8:30")
    dgv.Rows.Add("9:00")
    dgv.Rows.Add("9:30")
    dgv.Rows.Add("10:00")
    dgv.Rows.Add("10:30")
    dgv.Rows.Add("11:00")
    dgv.Rows.Add("11:30")
    dgv.Rows.Add("12:00")
    dgv.Rows.Add("12:30")
    dgv.Rows.Add("13:00")
    dgv.Rows.Add("13:30")
    dgv.Rows.Add("14:00")
    dgv.Rows.Add("14:30")
    dgv.Rows.Add("15:00")
    dgv.Rows.Add("15:30")
    dgv.Rows.Add("16:00")
    dgv.Rows.Add("16:30")
    dgv.Rows.Add("17:00")
    dgv.Rows.Add("17:30")
    dgv.Rows.Add("18:00")
    dgv.Rows.Add("18:30")
    dgv.Rows.Add("19:00")
    dgv.Rows.Add("19:30")
    dgv.Rows.Add("20:00")
    dgv.Rows.Add("20:30")
    dgv.Rows.Add("21:00")
    dgv.Rows.Add("21:30")
    dgv.Rows.Add("22:00")
    in questo caso ho le righe e la prima colonna della datagridview, le altre colonne l'ho già gestite :
    1° colonna= Lunedi
    2° colonna = materdi
    ecc.
    in questo caso la datagridview è scollegata dal database fisico, cioè scollegata dal datasource.

    ora la datagridview è preparata per essere riempita di appuntamenti, ma poi la devo collegarla al database, come la gestisco?
  • Re: Uno aiuto per creare agenda elettronica

    Lele,
    gestisco il datatable associato alla datagridview, in questo modo:
    Private Sub DataGridView1_CellContentClick....

    stringa di connessione..
    Conn.Open()

    Dim dataset As New mioDataSet
    Me.DataGridView_Agenda.DataSource = dataset
    Dim adapter As New SqlDataAdapter("SELECT ID, Ora, Lunedì, Martedì, Mercoledì, Giovedì,
    Venerdì, Sabato, Domenica FROM dbo.TABELLA", Conn)
    Dim builder As New SqlCommandBuilder(adapter)
    adapter.Fill(dataset, "TABELLA")
    builder.GetUpdateCommand()
    adapter.Update(dataset, "TABELLA")

    Conn.Close()
    ma non mi funziona, dove sbaglio?

    Se faccio una querry parametrica tramite un bottone:

    Dim Command1 As SqlCommand = New SqlCommand("Update dbo.TABABELLA SET colonna='"... ) , Conn)
    Command1.Transaction = transazione
    Command1.ExecuteNonQuery()


    Funzionerebbe meglio ? (Anche se con il bottone non è una bella idea).

    Ciao, Spiderman.
  • Re: Uno aiuto per creare agenda elettronica


    Il caricamento dei dati non funziona o il salvataggio?
    Se è il caricamento, prima carichi i dati tramite il tuo Dataset, poi ti scorri le righe della prima colonna ed aggiungi l'orario.
    Ciao Lele
  • Re: Uno aiuto per creare agenda elettronica

    lele2006 ha scritto:



    Il caricamento dei dati non funziona o il salvataggio?
    Se è il caricamento, prima carichi i dati tramite il tuo Dataset, poi ti scorri le righe della prima colonna ed aggiungi l'orario.
    Ciao Lele
    Ciao Lele,
    scusa per il ritardo a rispondere ,
    non funziona sia il caricamento dei dati che il salvataggio, per l'aggiunta dell'orario l'ho risolto come citato sopra, con l'aggiunta delle righe nella datagridview.

    Può essere che sbaglio questa riga "Dim adapter As New SqlDataAdapter("SELECT ID, Ora, Lunedì, Martedì, Mercoledì, Giovedì, Venerdì, Sabato, Domenica FROM dbo.TAB12_SETTIMANA", Conn)"

    in questa riga " builder.GetUpdateCommand()" mi da un errore :

    Generazione SQL dinamica per UpdateCommand non supportata per un SelectCommand che non restituisce informazioni di colonne chiave.

    Ciao
  • Re: Uno aiuto per creare agenda elettronica

    Hai sbagliato l'istruzione SQL perchè il comando non è valido, devi estrapolare i dati.
    Prendi spunto da questo articolohttps://www.iprogrammatori.it/articoli/programmazione/art_paginareundatagridviewtramitevbnetec_121.aspxdel nostro sito.
    Ciao lele
  • Re: Uno aiuto per creare agenda elettronica

    Ciao Lele,
    Grazie per il tuo aiuto,
    sono riuscito a caricare i dati nella dgv, l'aggiornamento riesco in parte posto il codice:
    
    
    Private Sub DataGridView1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView_Agenda.CellClick
    
    
            'connessione
            Dim Conn As SqlConnection = New SqlConnection(ConfigurationManager.ConnectionStrings("WinrepositoryDataSet").ConnectionString)
            Conn.Open()
    
            'oggetto per la query
            ' Dim adapter As New SqlDataAdapter("UPDATE dbo.TAB12_SETTIMANA SET Ora, Lunedì, Martedì, Mercoledì, Giovedì, Venerdì, Sabato, Domenica WHERE Ora BETWEEN '10:00' AND '20:00'", Conn)
    
            ' Dim dataset As New WinrepositoryDataSet()
            Dim Command1 As SqlCommand = New SqlCommand("UPDATE dbo.TAB12_SETTIMANA SET Lunedì='" & Me.Column1.HeaderText & "', Martedì='" & Me.Column2.HeaderText & "', Mercoledì='" & Me.Column3.HeaderText & "', Giovedì='" & Me.Column4.HeaderText & "', Venerdì='" & Me.Column5.HeaderText & "', Sabato='" & Me.Column6.HeaderText & "', Domenica='" & Me.Column7.HeaderText & "' WHERE Ora BETWEEN '9:00' AND '20:00'", Conn)
    
            Command1.ExecuteNonQuery()
    
    
            MessageBox.Show("Aggiornamento con successo")
            Conn.Close()
    
        End Sub
    
    cioè nell' evento della datagridview "cellclik" faccio la query parametrica, ma la cosa non può funzionare perché dovrei intercettare ogni singola cella della griglia, per salvare i dati nella tabella in modo ordinato e esatto, come posso fare a intercettare una singola cella e associarla al singolo campo della tabella,
    Sono stato poco chiaro, ma penso che tu abbia capito il problema...
  • Re: Uno aiuto per creare agenda elettronica



    Ciao, dipende dall'approccio, o lavori in modalità continua ossia non disconessa, oppure nell'evento updating (ora non ho il codice sottomano) gestisci la cella che è stata modifica.
    Qui trovi un esempio.
    Vedi se fa al caso tuo, in riferimento all'ultimo quesito.
    Ciao Lele
  • Re: Uno aiuto per creare agenda elettronica

    Ciao lele,
    certo lele dovrei lavorare il modalità in continua connessa al db fisico.
  • Re: Uno aiuto per creare agenda elettronica

    Ciao Lele,
    per gestire la tabella nel db, come mi consigli, creo una tabella per ogni settimana con le colonne chiamate es. lunerdì 24, martedì 25 ecc. cosi potrei gestire meglio il caricamento dei dati nella dgv con l'intestazioni delle colonne direttamente nella dgv.
    Oppure una tabella che da codice vb aggiungo colonne nel database fisico in base alla settimana, es. lunerdì 24, martedì 25 ecc, sempre per gestire meglio la dgv.
    Oppure una tabella come hai notato in un post precedente, con colonne lunedì, martedì, però il problema che mi sono posto, come faccio a gestire la famosa dgv, in senso se le informazioni lunerdì 24, martedì 25 ecc si trovano nelle righe della tabella, in fase di caricamento con il seguente codice:

    Dim dati As DataTable
    dati = dataset.Tables("TAB12_SETTIMANA")

    Me.DataGridView_Agenda.DataSource = dati

    non posso gestire le intestazioni delle colonne della dgv.
    Accetto un tuo consiglio.
Devi accedere o registrarti per scrivere nel forum
21 risposte