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

Try

Dim myTable As DataTable

Using 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 parametros

cmd.Parameters.AddWithValue(Item.Key.ToString(), Item.Value)

Next

Dim reader As SqlDataReader = cmd.ExecuteReader()myTable = New DataTable

myTable.Load(reader)

reader.Close()

conn.Close()

End Using

End Using

Return myTable

Catch ex As Exception

Throw 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.

 

No Comments