USANDO LIKE EM CONSULTA POR PARAMETRO
Pessoal...
Estou Tentando fazer uma busca com LIKE utilizando a forma de SQL com parâmetros...então, como não sei, me digam onde está o erro :
Bem, fui pelo instinto...por isso coloquei dessa maneira no script da consulta
Estou Tentando fazer uma busca com LIKE utilizando a forma de SQL com parâmetros...então, como não sei, me digam onde está o erro :
Private Sub Relatorio_Fabricante()
Dim Consulta As String = [Ô]SELECT * FROM Dados WHERE Fabricante LIKE %@Fab%[Ô]
Dim Rpt As New Relatorio1
Using Con As New OleDbConnection(Scon)
Con.Open()
Using Cmd As New OleDbCommand(Consulta, Con)
With Cmd.Parameters
.Add(New OleDbParameter([Ô]@Fab[Ô], txtCod.Text))
End With
Using Da As New OleDbDataAdapter
Using Ds As New DataSet
Da.SelectCommand = Cmd
Da.Fill(Ds, [Ô]Dados[Ô])
Rpt.SetDataSource(Ds)
CrV.ReportSource = Rpt
End Using
End Using
End Using
End Using
Rpt = Nothing
End Sub
Bem, fui pelo instinto...por isso coloquei dessa maneira no script da consulta
Experimente alterar a consulta e a linha do parametro conforme abaixo:
Não testei, pois não tenho VS no momento.
Dim Consulta As String = [Ô]SELECT * FROM Dados WHERE Fabricante LIKE @Fab[Ô]
...
.Add(New OleDbParameter([Ô]@Fab[Ô], [Ô]%[Ô] + txtCod.Text + [Ô]%[Ô]))
Não testei, pois não tenho VS no momento.
Pessoal, agora funcionou...mas gostaria de saber se está correto... :
Como vêem, coloquei o filtro em uma variável...antecedendo e predecedendo com o curinga [Ô]%[Ô]...no meu caso, pois o BD é Access...
Private Sub Relatorio_Fabricante()
Dim Consulta As String = [Ô]SELECT * FROM Dados WHERE Fabricante LIKE @Fab[Ô]
Dim Filtro As String = [Ô]%[Ô] & txtCod.Text & [Ô]%[Ô]
Dim Rpt As New Relatorio1
Using Con As New OleDbConnection(Scon)
Con.Open()
Using Cmd As New OleDbCommand(Consulta, Con)
With Cmd.Parameters
.Add(New OleDbParameter([Ô]@Fab[Ô], Filtro))
End With
Using Da As New OleDbDataAdapter
Using Ds As New DataSet
Da.SelectCommand = Cmd
Da.Fill(Ds, [Ô]Dados[Ô])
Rpt.SetDataSource(Ds)
CrV.ReportSource = Rpt
End Using
End Using
End Using
End Using
Rpt = Nothing
End Sub
Como vêem, coloquei o filtro em uma variável...antecedendo e predecedendo com o curinga [Ô]%[Ô]...no meu caso, pois o BD é Access...
Sintaticamente está correto. Mas pelo que vejo, vc está simplesmente fazendo um relatório. Seria muito mais aconselhável o uso do DataReader e não do DataSet
é sim...um relatório
Vou tentar passar para DataReader...já que é mais prático e rápido
Vou tentar passar para DataReader...já que é mais prático e rápido
Cara, como passo este código do DataSet para o DataReader e alimento o Relatório ???
Tópico encerrado , respostas não são mais permitidas