Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno
Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno
Con la quattordicesima generazione Lenovo ridisegna il suo ThinkPad più iconico attorno al nuovo Space Frame e ai processori Intel Core Ultra Series 3. Resta sotto 1Kg, è molto più semplice da riparare e si rivolge al professionista che lavora in mobilità, con un prezzo da prodotto di vertice.
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro
Le Jabra Evolve3 85 non sono semplicemente cuffie Bluetooth con cancellazione del rumore. Sono un dispositivo professionale pensato per chi trascorre gran parte della giornata in riunione, al telefono o davanti a un assistente basato sull'intelligenza artificiale
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi
Abbiamo provato MSI PRO MAX EDGE AI+, un mini-PC professionale progettato per eseguire modelli di intelligenza artificiale in locale, senza dipendere dal cloud. Il sistema abbina il processore AMD Ryzen AI Max+ 395, 128 GB di memoria unificata e un telaio in alluminio da appena 4 litri, con l'obiettivo di offrire capacità di elaborazione elevate in un formato compatto.
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 11-03-2010, 13:49   #1
deviato
Member
 
Iscritto dal: Feb 2008
Messaggi: 70
[VB. Net] Lettura database

Salve a tutti.
Il mio problema può sembrare una sciocchezza ma io non ci sto piu capendo niente..
Ho programmato molto con visual basic 6 e ho fatto tanti bei programmini interfacciati con i miei database. Ho voluto fare il salto e passare a visual basic 2008 che utilizza la tecnologia .Net. Ho guardato tanti tutorial in giro ma ognuno ha un modo diverso e tanti a volte neanche funzionano.
Volevo semplicemente sapere com'è il comando da dare per interrogare il mio database (ACCESS 2007) con una stringa sql e mettere il risultato dentro una textbox..
Tanto x capirsi Textbox1.text = ?????
Grazie

P.s. La fase di connessione al db l'ho già fatta

Dim PercorsoDB As String = "C:\Users\Alessio\Documents\esami.accdb"
Dim ConnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & PercorsoDB
Dim Cn As New OleDbConnection(ConnString)
deviato è offline   Rispondi citando il messaggio o parte di esso
Old 11-03-2010, 16:46   #2
deviato
Member
 
Iscritto dal: Feb 2008
Messaggi: 70
Ho risolto..
Vi posto la parte di codice così che se avete migliorie da consigliarmi possiate farlo o se semplicemente vi siete trovati nella mia stessa situazione..

Dim PercorsoDB As String = "C:\percorso\esami.accdb"
Dim ConnString As String = "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & PercorsoDB
Dim Cn As New OleDbConnection(ConnString)
Dim Ds As DataSet()
Dim cmd As OleDbCommand
Dim Dr As OleDbDataReader

Cn.Open()
cmd = New OleDbCommand("SELECT DOMANDA,A,B,C,D FROM esami")
Dr = cmd.ExecuteReader
Dr.Read()
TextBox1.Text = Dr(1)
TextBox2.Text = Dr(2)
TextBox3.Text = Dr(3)
TextBox4.Text = Dr(4)
TextBox5.Text = Dr(0)
Dr.Close()
Cn.Close()

Ogni volta che si lancia Dr.Read() legge il record successivo.
deviato è offline   Rispondi citando il messaggio o parte di esso
Old 12-03-2010, 12:12   #3
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da deviato Guarda i messaggi
Ho guardato tanti tutorial in giro ma ognuno ha un modo diverso e tanti a volte neanche funzionano.
E questo è un classico.

Quote:
Originariamente inviato da deviato Guarda i messaggi

Dim PercorsoDB As String = "C:\percorso\esami.accdb"
Dim ConnString As String = "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & PercorsoDB
Dim Cn As New OleDbConnection(ConnString)
Dim Ds As DataSet()
Dim cmd As OleDbCommand
Dim Dr As OleDbDataReader

Cn.Open()
cmd = New OleDbCommand("SELECT DOMANDA,A,B,C,D FROM esami")
Dr = cmd.ExecuteReader
Dr.Read()
TextBox1.Text = Dr(1)
TextBox2.Text = Dr(2)
TextBox3.Text = Dr(3)
TextBox4.Text = Dr(4)
TextBox5.Text = Dr(0)
Dr.Close()
Cn.Close()

Ogni volta che si lancia Dr.Read() legge il record successivo.
E' una tecnica un po' strana.
A parte il fatto del DataSet Ds, che crei e, almeno nel codice postato, poi non usi mai, non ho ben chiaro lo scopo che volevi raggiungere
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 14-03-2010, 12:30   #4
deviato
Member
 
Iscritto dal: Feb 2008
Messaggi: 70
Beh hai ragione il dataset non l'ho usato semplicemente perchè faceva parte di un tentativo precedente.. ho dimenticato di eliminare la dichiarazione.
Semplicemente volevo leggere un record del database e poi volevo inserirlo in alcuni textbox.. Comunque se hai soluzioni migliori sono tutto orecchie.. questa è stata una soluzione che con qualche accortezza sono riuscito a far funzionare.. sicuramente sarà una soluzione contadina.. eheheh
deviato è offline   Rispondi citando il messaggio o parte di esso
Old 14-03-2010, 13:29   #5
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da deviato Guarda i messaggi
Beh hai ragione il dataset non l'ho usato semplicemente perchè faceva parte di un tentativo precedente.. ho dimenticato di eliminare la dichiarazione.
Semplicemente volevo leggere un record del database e poi volevo inserirlo in alcuni textbox.. Comunque se hai soluzioni migliori sono tutto orecchie.. questa è stata una soluzione che con qualche accortezza sono riuscito a far funzionare.. sicuramente sarà una soluzione contadina.. eheheh
Se desideravi prelevare selettivamente un record per volta, magari avendo anche la possibilità di accedervi in modalità random ( trattandosi di un quiz... ) forse il DataSet era meglio usarlo, considerando anche il fatto che in Access non è possibile fare una Select diretta per RowNum.
In poche parole, carichi la tabella delle domande in un DataSet, e poi accedi alle singole Rows del DataSet stesso passando l'indice di Row :

Codice:
DataSet.Tables(index As Integer).Rows(index As Integer)
Oltretutto questo è preferibile ad avere un DataReader che fa la Select su un ID numerico direttamente da DB, in quanto in caso di continue aggiunte e rimozioni di domande dalla tabella, se non si procede opportunamente allo shifting dei record o al rimpiazzo degli ID mancanti, si incorre in inevitabili errori. Sicuramente nell'insieme Rows di un DataSet, invece non ci saranno mai "buchi" nella numerazione progressiva degli indici di riga.
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 15-03-2010, 12:08   #6
deviato
Member
 
Iscritto dal: Feb 2008
Messaggi: 70
Funziona! Grazie per l'aiuto! ormai ti sfrutto fino alla fine eheh Se io avessi un database in uno spazio internet ci sarebbe la possibilità di far interagire il mio programma con quest'ultimo invece di usare un database in locale?
deviato è offline   Rispondi citando il messaggio o parte di esso
Old 15-03-2010, 12:51   #7
ilboso
Senior Member
 
L'Avatar di ilboso
 
Iscritto dal: May 2002
Messaggi: 343
Quote:
Originariamente inviato da deviato Guarda i messaggi
Ho risolto..
Vi posto la parte di codice così che se avete migliorie da consigliarmi possiate farlo o se semplicemente vi siete trovati nella mia stessa situazione..

Dim PercorsoDB As String = "C:\percorso\esami.accdb"
Dim ConnString As String = "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & PercorsoDB
Dim Cn As New OleDbConnection(ConnString)
Dim Ds As DataSet()
Dim cmd As OleDbCommand
Dim Dr As OleDbDataReader

Cn.Open()
cmd = New OleDbCommand("SELECT DOMANDA,A,B,C,D FROM esami")
Dr = cmd.ExecuteReader
Dr.Read()
TextBox1.Text = Dr(1)
TextBox2.Text = Dr(2)
TextBox3.Text = Dr(3)
TextBox4.Text = Dr(4)
TextBox5.Text = Dr(0)
Dr.Close()
Cn.Close()

Ogni volta che si lancia Dr.Read() legge il record successivo.

un paio di consigli:
- fai un test sul metodo "dr.read", cosi' da poter gestire il caso in cui non trovi i dati.
- per leggere il field del datareader, puoi anche usare il nome del campo, oltre che il suo indice


Codice:
Dim PercorsoDB As String = "C:\percorso\esami.accdb"
Dim ConnString As String = "Provider=Microsoft.ACE.OLEDB.12.0;" & "Data Source=" & PercorsoDB
Dim Cn As New OleDbConnection(ConnString)
Dim Ds As DataSet()
Dim cmd As OleDbCommand
Dim Dr As OleDbDataReader

Cn.Open()
cmd = New OleDbCommand("SELECT DOMANDA,A,B,C,D FROM esami")
Dr = cmd.ExecuteReader
if Dr.Read() then
	TextBox1.Text = Dr("A")
	TextBox2.Text = Dr("B")
	TextBox3.Text = Dr("C")
	TextBox4.Text = Dr("D")
	TextBox5.Text = Dr("DOMANDA")
else
	' dati non trovati...
end if
Dr.Close()
Cn.Close()
__________________
Lone Loser: un'avventura grafica punta e clicca! http://loneloser.altervista.org
ilboso è offline   Rispondi citando il messaggio o parte di esso
Old 15-03-2010, 19:11   #8
MarcoGG
Senior Member
 
L'Avatar di MarcoGG
 
Iscritto dal: Dec 2004
Messaggi: 3210
Quote:
Originariamente inviato da deviato Guarda i messaggi
Funziona! Grazie per l'aiuto! ormai ti sfrutto fino alla fine eheh Se io avessi un database in uno spazio internet ci sarebbe la possibilità di far interagire il mio programma con quest'ultimo invece di usare un database in locale?
Tutto sta a definire meglio il concetto di "spazio internet".
La risposta è : dipende...
Se ad esempio vuoi mantenere il tuo DB Access, che magari sta su FTP, ti rimando qui :
http://www.hwupgrade.it/forum/showthread.php?t=2002757
E comunque, per quanto ne so io, la risposta è No.
MarcoGG è offline   Rispondi citando il messaggio o parte di esso
Old 16-11-2010, 19:32   #9
andrea.chiarentin
Junior Member
 
Iscritto dal: Mar 2010
Messaggi: 14
Scusate io ho un problema riguardante l'aggiornamento del DB dopo aver cancellato una riga dalla Table. In pratica il metodo update del dataadapter non fa nulla! Voi sapreste suggerirmi una possibile causa?
GRaize
andrea.chiarentin è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Lenovo ThinkPad X1 Carbon Gen 14: il business ultraleggero si rinnova dall’interno Lenovo ThinkPad X1 Carbon Gen 14: il business ul...
Jabra Evolve3 85: le cuffie sia per l'intrattenimento che per il lavoro Jabra Evolve3 85: le cuffie sia per l'intratteni...
MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB per far girare in locale anche i modelli più grandi MSI PRO MAX EDGE AI+, Ryzen AI Max+ 395 e 128 GB...
Recensione vivo X500 Pro Max: la fotografia mobile ha un nuovo protagonista Recensione vivo X500 Pro Max: la fotografia mobi...
WoW Forever: la beta è stato uno dei momenti più alti della storia dei videogiochi, e non si ripeterà WoW Forever: la beta è stato uno dei mome...
I satelliti spia russi Kosmos 2613 e Kos...
GTA VI: online la nuova mega galleria co...
Edits, l'app di Instagram, sbarca gratis...
Claude Code: il bug che ha spedito l'ema...
Perplexity lancia Teammates, gli agenti ...
Niente più datacenter? Gli eletto...
La Cina avrebbe approvato lo sviluppo de...
Epson EF-72 alla prova: Google TV, audio...
AST SpaceMobile annuncia il razzo spazia...
Apple taglia il budget AI dei dipendenti...
Fisco e intelligenza artificiale, come c...
Synology BC510 e CC410W, la videosorvegl...
600.000 chip NVIDIA fermi a Hong Kong: l...
La Cina punta tutto sull'allunaggio con ...
LG Italia compie 30 anni: gli italiani v...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 20:56.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v