Declaração de parâmetros no VB.NET - ntier
Num desenvolvimento em camadas onde a camada de acesso a dados utiliza parâmetros, veja um código de como delarar quantos parâmetros forem necessários. Note que usei um Hahtable e, para ler os parâmetros usei o foreach com um DictionaryEntry. Isto permite receber uma coleção de parâmetros e adicioná-los ao Command.
Public Class CamadaDadosDim conexao As String = "data source=MARTE; Initial Catalog=Northwind; Integrated Security=True"
Function GetData(ByVal sql As String, ByVal parametros As Hashtable) As DataTableTry
Dim myTable As DataTableUsing conn As New SqlConnection(conexao)
Using cmd As New SqlCommand(sql, conn)conn.Open()
' adicionar os parametros ao Command - chave / valor
For Each Item As DictionaryEntry In parametroscmd.Parameters.AddWithValue(Item.Key.ToString(), Item.Value)
Next
Dim reader As SqlDataReader = cmd.ExecuteReader()myTable = New DataTablemyTable.Load(reader)
reader.Close()
conn.Close()
End Using
End Using
Return myTableCatch ex As Exception
Throw exEnd Try
End Function
End Class
Agora veja o código que irá consumir esta função, evitando a injeção de SQL. Note que declarei apenas 1 parâmetro, mas vc pode declarar diversos.
Dim sql As String = "Select * from Products Where CategoryID=@cat"
parametros.Add("@cat", 1)DataGridView1.DataSource = objDados.GetData(sql, parametros)
Boa sorte nos códigos.