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 CamadaDados
Dim conexao As String = "data source=MARTE; Initial Catalog=Northwind; Integrated Security=True"Function GetData(ByVal sql As String, ByVal parametros As Hashtable) As DataTable
TryDim myTable As DataTable
Using conn As New SqlConnection(conexao)Using cmd As New SqlCommand(sql, conn)
conn.Open()
' adicionar os parametros ao Command - chave / valorFor Each Item As DictionaryEntry In parametros
cmd.Parameters.AddWithValue(Item.Key.ToString(), Item.Value)
NextDim reader As SqlDataReader = cmd.ExecuteReader()myTable = New DataTable
myTable.Load(reader)
reader.Close()
conn.Close()
End Using
End UsingReturn myTable
Catch ex As ExceptionThrow ex
End 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.