PDA

View Full Version : [vb .net] Esempio di rubrica


Berno
23-12-2003, 01:31
Tempo fa avevo imparato qualcosa di vb6 ed avevo utilizzato le mie conoscenze per fare un programmino che leggeva e scriveva dati su di un database di access2000...

Ora ho deciso di continuare ma buttandomi su vb .net, il problema è che il controllo data che usavo con vb6 non esiste più (da quanto ho capito)...

Ho provato a cercare un pò in giro ed ho trovato diverse guide ma nessuna mi ha soddisfatto decentemente...

In pratica vorrei una guida alla creazione di un programma di esempio in vb .net (ho parlato della rubrica perchè è un classico) che riassumesse tutte le operazioni base che mi servono, ovvero inserimento, modifica, eliminazione dei record...

Conoscete qualche link che mi possa essere utile?

P.S. Google lo conosco già (ci sono rubriche in vb6 ma in .net il nulla)...

ball12
24-12-2003, 12:53
Devi creare delle classi per i contatti.

Per l'accesso al db access devi usare System.Data.Oledb (guarda sul framework gli esempio)

Ciao, se hai bisogno siam qua:D

Berno
24-12-2003, 15:05
Originariamente inviato da ball12
Devi creare delle classi per i contatti.

Ehm... Cioè?
Io avevo parlato di rubrica perchè è l'esempio classico, a me il programma serve a gestire la mia collezione di cactus...

Per l'accesso al db access devi usare System.Data.Oledb (guarda sul framework gli esempio)

Si tratta quasi dell'unica cosa che sono riuscito a fare guardando gli esempi...

Sono anche riuscito ad eseguire una query sul database, ma quello che mi serviva era l'inserimento, modifica ed eliminazione dei record...

Ciao, se hai bisogno siam qua:D

Grazie mille, stavo perdendo la speranza perchè nessuno mi considerava da due giorni...

A me basterebbe un programma/guida di esempio dove vengano effettuate ste operazioni, solo che come ti ho detto non ho trovato niente al riguardo in internet sul vb.net...

Ma se mi seguite passo passo tenendomi la manina :sofico: è anche meglio...

ball12
24-12-2003, 15:21
Lascia stare le classi, non ho capito nemmeno io come funzionano, sono all'inizio.

Ti crei una bella GUI con delle textbox, poi al click su un pulsante gli dici di mettere dentro un db.

puoi usare il generatore di query di vs.net con insert come direttiva., nn so se hai capito

Berno
24-12-2003, 17:19
Originariamente inviato da ball12
Lascia stare le classi, non ho capito nemmeno io come funzionano, sono all'inizio.
Per fortuna non sono il solo :D...
Ti crei una bella GUI con delle textbox, poi al click su un pulsante gli dici di mettere dentro un db.
In vb6 usavo la proprietà datasource (o qualcosa di simile) della textbox per collegarla al database ma in .net non so come si faccia, potresti farmi un esempio?
puoi usare il generatore di query di vs.net con insert come direttiva., nn so se hai capito
Astuto :cool:, non ci avevo pensato, non ho idea di dove sia il generatore di query di vb.net ma una query con insert posso provare a farla anche io :sofico:...
Grazie ancora, se mi funziona il programma te ne invierò una copia dimostrativa (così potrai iniziare anche te a collezionare cactus :D)...

Berno
25-12-2003, 00:39
Sono riuscito ad eseguire inserimento, modifica ed eliminazione dei record tramite query sql...

Mi rimane un problema, contare i record del database:

Dall'alto della mia ignoranza ho provato a fare così (la mia connessione al database si chiama cn):

Dim conta_ As New OleDbDataAdapter("SELECT COUNT(1) FROM Dati_piante", cn)
Dim conta As New DataSet()
Dim numero_records As Int16
numero_records = conta_.Fill(conta)
TextBox1.Text = numero_records

Ovviamente non funziona, sbaglio la query, ad ottenere il risultato oppure tutti e due :D???

Quella cosa delle classi mi stuzzica, quasi quasi quando ho capito quest'ultima cosa mi creo una classe di nome data e le assegno gli stessi metodi e proprietà della classe data di vb6, così non devo nemmeno riscrivere tutto il codice :sofico: ...

Berno
27-12-2003, 14:33
Ho risolto facendo:

Dim conta_ As New OleDbDataAdapter("SELECT * FROM Dati_piante", cn)
Dim conta As New DataSet()
Dim numero_records As Int16
conta_.Fill(conta)
numero_records = conta.tables("table").rows.count

Sono anche riuscito a crearmi una classe apposita per gestire il mio database...

Se vi può interessare quando ho finito posto il codice...

Anche perchè mi sa che mooolte cose che ho fatto potrebbero essere migliorate notevolmente...

ball12
27-12-2003, 14:39
Sei andato avanti, sei più avanti di me.....

Ottimo, vediamo di migliorare la rubrica...

Berno
28-12-2003, 23:47
Ho praticamente finito la parte che avevo già fatto in vb6, ora non rimane che aggiornare qualcosa quà e là...

Ho fatto praticamente tutto tramite query SQL, così se voglio cambiare tipo di database il resto del programma rimane intatto...

cionci
29-12-2003, 02:58
Berno e ball12: avete la signature irregolare...max 3 righe @800x600... Potete correggere ? Grazie :)

ball12
29-12-2003, 11:29
Sorry, correggo subito...

Berno
29-12-2003, 16:16
Ma ultimamente è cambiato qualcosa nel forum (regole, layout) :confused: ?

Non è possibile cha abbia avuto la sign irregolare per tre anni e mezzo senza che nessuno se ne sia accorto...

Comunque provvedo subito...

cionci
29-12-2003, 16:18
Il regolamento è lì da un bel po', si vede che nessuno si era mai preso la briga di dirtelo :)
http://forum.hwupgrade.it/regolamento.php

Berno
29-12-2003, 16:24
Il regolamento lo conosco...

Ho capito perchè era irregolare, l'ultima volta che l'ho modificata ho inserito un invio di troppo :D ...

cionci
29-12-2003, 16:50
Bene :)

Einstein
30-12-2003, 22:40
Tornando al problema del db: cerca nella documentazione gli argomenti riguardanti i Typed Datasets.
Sono un bel modo (non l'unico, ovviamente) per astrarre la logica dell'accesso ai dati dalla logica di interfaccia.
Le classi in .NET sono tutto: qualsiasi cosa in .NET è una classe, anche il tipo integer o string.

Ciao

ball12
30-12-2003, 23:24
Originariamente inviato da Einstein
Tornando al problema del db: cerca nella documentazione gli argomenti riguardanti i Typed Datasets.
Sono un bel modo (non l'unico, ovviamente) per astrarre la logica dell'accesso ai dati dalla logica di interfaccia.
Le classi in .NET sono tutto: qualsiasi cosa in .NET è una classe, anche il tipo integer o string.

Ciao

E' quello il bello...anche se è un po' difficile:D

Berno
31-12-2003, 01:12
Originariamente inviato da Einstein
Tornando al problema del db: cerca nella documentazione gli argomenti riguardanti i Typed Datasets.
Sono un bel modo (non l'unico, ovviamente) per astrarre la logica dell'accesso ai dati dalla logica di interfaccia.
Le classi in .NET sono tutto: qualsiasi cosa in .NET è una classe, anche il tipo integer o string.

Grazie del consiglio, adesso dò un'occhiata...

Ho anche un nuovo problema, questa volta riguardante le query sql...

Devo inserire una frase comprendente spazi e punteggiatura in un campo del database...

Per inserire parole singole le delimitavo con gli apici tipo: Nome='Pippo'

Per una frase come devo comportarmi?

Ho provato sia con gli apici singoli che con quelli doppi ma il risultato non è cambiato :muro: ...

Ho provato anche a fare le classiche ricerche su internet ma spiegano come fare query su 1000 tabelle con 1000 campi diversi ma non come inserire una frasettina :rolleyes: ...

Berno
31-12-2003, 02:14
Ho capito che il problema non è la query, vb mi dà errore del tipo "unhandled exception of type" quando cerco di scrivere in due precisi campi del database, indipendentemente dalla stringa che voglio inserirci...

Il problema è che quello che cerco di scriverci è perfettamente compatibile con le caratteristiche del campo :muro: ...

ball12
31-12-2003, 09:13
Devi fare un insert into

cionci
31-12-2003, 09:59
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=236&lngWId=10
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=637&lngWId=10
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=574&lngWId=10
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=1881&lngWId=10
http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId=1221&lngWId=10

Berno
31-12-2003, 13:52
Grazie Cionci, era quello che cercavo, io utilizzo un db access ma a parte la stringa di connessione dovrebbe rimanere tutto uguale...

X ball12

Non hai capito, il mio problema è che la mia query funziona in tutti i campi tranne due in cui qualsiasi cosa io scriva mi dà errore come se stessi cercando di inserire dei dati in formato non compatibile...

Berno
31-12-2003, 14:51
Ho scoperto l'inghippo...

Al database non piaceva che un campo si chiamasse "Note", rinominandolo in "Appunti" non ho più avuto alcun problema...

ball12
31-12-2003, 16:24
A ok.

la stringa di connessione si trova anche nel framework ed è aposta per DB Access

Berno
31-12-2003, 20:43
Ho risolto pienamente solo ora, alcune delle frasi che volevo inserire contenevano degli apici ' per cui il database si incazzava...

Ci ho messo un pò per capire che dovevo sostituirli con i doppi apici '' :D utilizzando la funzione replace...