Ciao a tutti!
Ho fatto un progetto di esempio in visual studio, dove ho il mio form e due tasti, il primo mi inserisce un nuovo record nel db e il secondo mi legge tutti i record.
Ecco il codice
codice:
Imports System.Data.OleDb
Imports System.Windows.Forms
Public Class Form1
Dim ConnString As String 'DICHIARAZIONE PERSCORSO
Dim Cn As OleDbConnection 'DICHIARAZIONE CONNESSIONE
Dim sql As String 'DICHIARO VARIABILE PER QUERY
Dim cmd As OleDbCommand 'DICHIARO LA VARIABILE CHE ESEGUE LA QUERY
Dim dr As OleDbDataReader 'DICHIARO VARIABILE CHE LEGGE IL RISULTATO DELLA QUERY
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'IMPOSTO LA CONNESSIONE AL DB
ConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Clienti\...\MDB\db.mdb;Persist Security Info=False"
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'AGGIORNO IL DB
Cn = New OleDbConnection(ConnString) 'CREO LA NUOVA CONNESSIONE
If Cn.State = ConnectionState.Open Then Cn.Close() 'SE LA CONNESSIONE è GIà APERTA LA CHUDO
Cn.Open() 'APRO LA CONNESSIONE
sql = "INSERT INTO TABELLA (perito) VALUES ('" & TextBox1.Text & "');" 'SCRIVO LA QUERY
cmd = New OleDbCommand(sql, Cn) 'IMPOSTO LA QUERY CON LA CONNESSIONE
cmd.ExecuteNonQuery()
Cn.Close()
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
'LEGGO I RECORD
Cn = New OleDbConnection(ConnString) 'CREO LA NUOVA CONNESSIONE
If Cn.State = ConnectionState.Open Then Cn.Close() 'SE LA CONNESSIONE è GIà APERTA LA CHUDO
Cn.Open() 'APRO LA CONNESSIONE
sql = "SELECT perito FROM TABELLA" 'SCRIVO LA QUERY
cmd = New OleDbCommand(sql, Cn) 'IMPOSTO LA QUERY CON LA CONNESSIONE
dr = cmd.ExecuteReader 'ESEGUO LA QUERY E SCRIVO I RECORD DENTRO AL DATAREADER
If dr.HasRows = True Then
'CONTIENE ALMENO UN RECORD
Else
'è VUOTO
End If
Do While dr.Read()
If dr.IsDBNull(0) Then
MsgBox("ok")
Else
MsgBox(dr.Item(0))
End If
Loop
Cn.Close()
ho dichiarato nel generale le variabili di connessione, poi nel form ho impostato il percorso del db e nei singoli tasti eseguo la query.
Funziona perfettamente pero ho alcune cose da chiedere.
Quando eseguo le query con le seguenti istruzioni
cmd = New OleDbCommand(sql, Cn)
dr = cmd.ExecuteReader
questi oggetti cmd e dr si possono svuotare?
se non li svuoto occupano memoria?
quando conviene usare il dataset o datatable?
Putroppo sono nuovo di VB.NET ho sempre programmato in vb6 e sto cercando di capire!
Grazie