Parametri procedura




Imports System
Imports System.Data
Imports System.Data.OleDb
Module Main
'Definizione della connessione

Dim cn As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Access\NorthWind.mdb;Persist Security Info=False")
Sub Main()
'richiamo il metodo per aggiornare i dati

AggiornaDati
End Sub
Private Sub AggiornaDati
' ovviamente e' solo a titolo esemplificativo!!

' definizione di un oggetto command, si noti il nome del campo tra parentesi quadrate

' l'ho scelto perche' contiene un accento

Dim cm As New OleDb.OleDbCommand("INSERT INTO Corrieri ([NomeSocieta'], [Telefono]) VALUES (?, ?)",cn)
' su oledb i parametri sono posizionali il che vuol dire che DEVONO

' essere inseriti nello stesso ordine in cui sono presenti nel Command

Dim prm As New OleDb.OleDbParameter() 'ovviamente esistono delle altre modalita' di definizione
'e' il valore di default di "direction" ma impostarlo rende piu' leggibile il codice

prm.Direction = ParameterDirection.Input
' il tipo da inviare e' molto importante metterlo sempre

prm.DbType = DbType.String
'il valore va immesso in accordo con DbType

'se si tratta di un numero o di una data ovviamente vanno immessi dei tipi numerici o data

'SENZA alcuna conversione di formato

prm.Value = "Dall'Ara Francesco'" 'si notino accento e apice
'si appendono i parametri nello stesso ordine con cui vanno a "coprire" il ? nella stringa

cm.Parameters.Add(prm)
prm = New OleDbParameter()
prm.DbType = DbType.String
prm.Value = "(555)123-456"
cm.Parameters.Add(prm)
Try
If cn.State <> ConnectionState.Open Then
cn.Open
End If
cm.ExecuteNonQuery
Catch ex As Exception
Console.WriteLine(ex.Message & Environment.NewLine & ex.StackTrace)
Finally
If cn.State = ConnectionState.Open Then
cn.Close
End If
End Try
End Sub
End Module












( parametriprocedura.html )- by Paolo Puglisi - Modifica del 17/12/2023