Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Fogli di Calcolo e VB.Net
Forum - C# / VB.NET - Fogli di Calcolo e VB.Net

Avatar
mitor (Normal User)
Pro


Messaggi: 73
Iscritto: 01/08/2007

Segnala al moderatore
Postato alle 14:38
Venerdì, 02/05/2008
Ciao ragazzi,mi sto chiedendo come sia possibile creare un foglio di calcolo in un windows form,oppure comunicare con programmi quali excel però in maniera grafica per le modifiche,se ad'esempio modifico un campo deve salvarsi alla chiusura del programma,con windows xp mi bastava impostare nel browser la directory e l'estensione del file (C:\lol.xls)
mentre ora con Vista non mi permette di aprirlo..sicuramente c'è un sistema più veloce...anche se credo che sia possibile fare una cosa del genere anche con i db..solo che non ci ho mai messo mani..non saprei come salvare i dati del db e modificarli

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 20:37
Venerdì, 02/05/2008
Per quanto riguarda l'interazione grafica, non si può. Tutto quello che puoi fare è modificare fogli di calcolo da codice, dopo aver costruito tu la tua interfaccia. Trovi esempi di excel su google, ad esempio questo:
http://blog.shareoffice.it/emanuele/articles/200.aspx

PM Quote
Avatar
mitor (Normal User)
Pro


Messaggi: 73
Iscritto: 01/08/2007

Segnala al moderatore
Postato alle 21:19
Venerdì, 02/05/2008
bè,un bel casino diciamo...mi chiedo come sia possibile per ogni operazione fatta riuscire a dare un comando tramite codice..diciamo che riuscirei ad arrivare ad una cosa simile..ma è troppo meccanica..mentre...utilizzando un datagrid? ho notato che è possibile modificare il testo,le colonne e forse anche lo sfondo di una cella...sarebbe utile..se non è possibile scarto già l'idea...però non saprei come gestire i db,salvare i dati e via dicendo..sto cercando di fare un programma per tenere conto dei giorni colorandoli,tipo un gestionale...Totem,puoi postarmi una possibile soluzione al problema..un punto di riferimento che posso darti è il fatto che il programma è per la gestione delle prenotazione di stanze,l'utente deve selezionare (colorando e personalizzando il testo) i vari periodi.
Grazie a Tutti!

PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 17:34
Sabato, 03/05/2008
Bada bene, una cosa è il foglio di calcolo elettronico, un'altra è il database.

Se vuoi fare un programma di gestione, sicuramente devi approcciarti di più ai database. L'uso dei DataGridView è quasi d'obbligo con i database, quindi la tua idea era buona e fondata. Puoi trovare un esempio di gestionale con datagridview e database qui:
http://totem.altervista.org/guida/versione2/C15.php

Ultima modifica effettuata da Il Totem il 03/05/2008 alle 17:35
PM Quote
Avatar
mitor (Normal User)
Pro


Messaggi: 73
Iscritto: 01/08/2007

Segnala al moderatore
Postato alle 21:04
Sabato, 03/05/2008
Ottimo,ho creato il db con Access e impostato il DataGridView,ora riesco a scrivere dentro al db e visualizzare il tutto nel DataGridView anche inserendo nuovi dati..però ho parecchi dubbi..vi posto il codice che ho usato preso da un sito esterno:

Codice sorgente - presumibilmente VB.NET

  1. Dim objconn As OleDbConnection
  2. Dim stringaconn As String
  3. Dim stringasql As String
  4. Dim objcomm As OleDbCommand
  5. stringaconn="Provider=Microsoft.JET.OLEDB.4.0;Data Source="
  6. stringaconn=stringaconn & "c:\test\prova.mdb"
  7. objconn=New OleDbConnection(stringaconn)
  8. objconn.Open()
  9. stringasql="Insert into prova(cognome,nome) values('"
  10. stringasql=stringasql & Me.txt_cognome.Text & "'" & ","
  11. stringasql=stringasql & "'" & me.txt_nome.Text & "'" & ")"
  12. objcomm=New OleDbCommand(stringasql,objconn)
  13. Dim risputente As Integer
  14. try
  15. risputente=objcomm.ExecuteNonQuery()
  16. If risputente=1 Then
  17.  msgbox("Inserimento effettuato con successo")
  18.  objconn.Close()
  19.  Me.txt_cognome.Text=""
  20.  Me.txt_nome.Text=""
  21.  Me.txt_cognome.Focus()
  22. End If
  23.  Catch es As Exception
  24.  msgbox("Errore: il campo cognome e/o nome sono vuoti")
  25.  objconn.Close()
  26. end try



solo che vorrei delle delucidazioni in questi punti per capire meglio il funzionamento:

Codice sorgente - presumibilmente Plain Text

  1. stringasql="Insert into prova(cognome,nome) values('"
  2. stringasql=stringasql & Me.txt_cognome.Text & "'" & ","
  3. stringasql=stringasql & "'" & me.txt_nome.Text & "'" & ")"
  4. objcomm=New OleDbCommand(stringasql,objconn)



non riesco a capire tutte queste "'" ")" a cosa si riferiscono..oltre a questo,vorrei anche sapere come sia possibile,modificando il contenuto di un DataGridView modificare anche il db,non sò tramite un button o qualcosa di simile...non sono riuscito a capirlo..vorrei anche avere una delucidazione sulle modifiche appunto apportate all'interno del dataGridView,i contenuti che modifico come dicevo non si salvano da soli..esiste qualche sistema particolare?

vorrei anche sapere come sia possibile eliminare determinati oggetti nel db,e come ad'esempio modificare il contenuto di una colonna nel db,in uno specifico punto..più mi scrivete e meglio è,cercando anche di spiegare come lavorano questi spezzettoni di codice : ('" (') (") e via dicendo.
Grazie a tutti! e scutare per le numerose domande!
Aggiungo in'oltre che ogni volta,senza toccare nulla avviando il progetto esce questo messaggio di errore:
OleDbException Non è stata Gestita
Nessun Valore Specificato Per Alcuni Parametri Specificati

Non riesco a capire da dove viene generato l'errore..sicuramente è qualcosa a che fare con il db di access però non vedo nulla di sbagliato.poichè 5 secondi prima funzionava.
Se avete una guida approfondita sull'argomento è meglio,altrimenti dedicate ìuna decina di minuti a rispondermi
:-|

Ultima modifica effettuata da mitor il 03/05/2008 alle 21:07
PM Quote
Avatar
Il Totem (Admin)
Guru^2


Messaggi: 3635
Iscritto: 24/01/2006

Segnala al moderatore
Postato alle 20:13
Lunedì, 05/05/2008
Testo quotato

Postato originariamente da mitor:

Ottimo,ho creato il db con Access e impostato il DataGridView,ora riesco a scrivere dentro al db e visualizzare il tutto nel DataGridView anche inserendo nuovi dati..però ho parecchi dubbi..vi posto il codice che ho usato preso da un sito esterno:

Codice sorgente - presumibilmente VB.NET

  1. Dim objconn As OleDbConnection
  2. Dim stringaconn As String
  3. Dim stringasql As String
  4. Dim objcomm As OleDbCommand
  5. stringaconn="Provider=Microsoft.JET.OLEDB.4.0;Data Source="
  6. stringaconn=stringaconn & "c:\test\prova.mdb"
  7. objconn=New OleDbConnection(stringaconn)
  8. objconn.Open()
  9. stringasql="Insert into prova(cognome,nome) values('"
  10. stringasql=stringasql & Me.txt_cognome.Text & "'" & ","
  11. stringasql=stringasql & "'" & me.txt_nome.Text & "'" & ")"
  12. objcomm=New OleDbCommand(stringasql,objconn)
  13. Dim risputente As Integer
  14. try
  15. risputente=objcomm.ExecuteNonQuery()
  16. If risputente=1 Then
  17.  msgbox("Inserimento effettuato con successo")
  18.  objconn.Close()
  19.  Me.txt_cognome.Text=""
  20.  Me.txt_nome.Text=""
  21.  Me.txt_cognome.Focus()
  22. End If
  23.  Catch es As Exception
  24.  msgbox("Errore: il campo cognome e/o nome sono vuoti")
  25.  objconn.Close()
  26. end try



solo che vorrei delle delucidazioni in questi punti per capire meglio il funzionamento:

Codice sorgente - presumibilmente Plain Text

  1. stringasql="Insert into prova(cognome,nome) values('"
  2. stringasql=stringasql & Me.txt_cognome.Text & "'" & ","
  3. stringasql=stringasql & "'" & me.txt_nome.Text & "'" & ")"
  4. objcomm=New OleDbCommand(stringasql,objconn)



non riesco a capire tutte queste "'" ")" a cosa si riferiscono..oltre a questo,vorrei anche sapere come sia possibile,modificando il contenuto di un DataGridView modificare anche il db,non sò tramite un button o qualcosa di simile...non sono riuscito a capirlo..vorrei anche avere una delucidazione sulle modifiche appunto apportate all'interno del dataGridView,i contenuti che modifico come dicevo non si salvano da soli..esiste qualche sistema particolare?

vorrei anche sapere come sia possibile eliminare determinati oggetti nel db,e come ad'esempio modificare il contenuto di una colonna nel db,in uno specifico punto..più mi scrivete e meglio è,cercando anche di spiegare come lavorano questi spezzettoni di codice : ('" (') (") e via dicendo.
Grazie a tutti! e scutare per le numerose domande!
Aggiungo in'oltre che ogni volta,senza toccare nulla avviando il progetto esce questo messaggio di errore:
OleDbException Non è stata Gestita
Nessun Valore Specificato Per Alcuni Parametri Specificati

Non riesco a capire da dove viene generato l'errore..sicuramente è qualcosa a che fare con il db di access però non vedo nulla di sbagliato.poichè 5 secondi prima funzionava.
Se avete una guida approfondita sull'argomento è meglio,altrimenti dedicate ìuna decina di minuti a rispondermi
:-|



Allora, iniziamo dall'inizio:
- "non riesco a capire tutte queste "'" ")" a cosa si riferiscono.."
Molto semplicemente si sta costruendo un'istruzione SQL che, come tale, ha una propria sintassi. Dato che si sta operando con vb2005 è necessario costruire il comando sotto forma di stringa. Esso deve avere questa signature:
Codice sorgente - presumibilmente Plain Text

  1. INSERT INTO <Nome Tabella>(<Attributi>) Values('Valore1', 'Valore2', ...)


Dato che le parentesi bisogna pur chiuderle, mi sembra ovvio che si debba accodare all'istruzione qualche ")", altrimenti il codice non viene eseguito correttamente e produce errori. Se vuoi una versione più comprensibili, eccola qua:
Codice sorgente - presumibilmente Plain Text

  1. stringasql = String.Format("INSERT INTO prova(cognome, nome) VALUES('{0}', '{1}')", Me.txt_cognome.Text, Me.txt_nome.Text)



- "oltre a questo,vorrei anche sapere come sia possibile,modificando il contenuto di un DataGridView modificare anche il db"
C'è scritto nella mia guida, al link sopraindicato. Ossia devi tradurre tutte le modifiche in istruzioni sql da eseguire sul database.

- "vorrei anche sapere come sia possibile eliminare determinati oggetti nel db"
Stesso discorso di prima, usi istruzioni sql. Ammettendo che tu voglia eliminare tutti i record in cui nome="Gino", avrai:
Codice sorgente - presumibilmente C# / VB.NET

  1. objcomm = New OleDbCommand("DELETE FROM prova WHERE nome = 'Gino'")
  2. objcomm.ExecuteNonQuery()



- "Non riesco a capire da dove viene generato l'errore.."
Se non metti tutto il codice non posso aiutarti. Almeno devi riportare l'evento Form_Load o Form_Shown.

PM Quote