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 parametroscmd.Parameters.AddWithValue(Item.Key.ToString(), Item.Value)
NextDim reader As SqlDataReader = cmd.ExecuteReader()myTable = New DataTablemyTable.Load(reader)
reader.Close()
conn.Close()
End Using End UsingReturn myTable Catch ex As ExceptionThrow ex End Try End FunctionEnd
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.