CONSULTA DATAGRID
Bom dia Pessoal.
Estou tentando realizar uma consulta em um DataGrid atraves de um textbox, porém, ao clicar em consulta ocorre o erro: [Ô]Nenhum valor fornecido para um ou mais parametros necessários.
Alguem pode me ajudar a localizar o erro?
Abaixo o Cód.
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
St = [Ô]Select empresa From tblCadastro WHERE ordem = [Ô] & Val(txtOS.Text)
tblDataAdapter = New OleDb.OleDbDataAdapter(St, conexao)
tblDataAdapter.Fill(Consulta, [Ô]tblCadastro[Ô])
Dim Result As DataTable = Consulta.Tables([Ô]tblCadastro[Ô])
Dim Result_linha As DataRow
If Result.Rows.Count > 0 Then
Result_linha = Result.Rows(0)
Dim userDataTable As New DataTable
Try
If IsNumeric(txtOS.Text) = True Then
DataGridView1.DataSource = Me.consultar(False, CType(txtOS.Text, Integer), txtOS.Text.Trim)
End If
userDataTable = DataGridView1.DataSource
Me.Ordenar(userDataTable, DataGridView1.CurrentRow.Index)
Catch ex As Exception
End Try
Else
MsgBox([Ô]Não existe OS cadastrada com o número: [Ô] & txtOS.Text)
Exit Sub
End If
End Sub
Private Function consultar(ByVal mostrar As Boolean, ByVal codigo As Integer, ByVal nome As String) As DataTable
Dim UserDataTable As New DataTable
Dim sbusca As New StringBuilder
Try
With sbusca
.Append([Ô]Select OS[Ô] + vbCrLf)
.Append([Ô] ,nome[Ô] + vbCrLf)
.Append([Ô] ,socioadm[Ô] + vbCrLf)
.Append([Ô] ,participacao[Ô] + vbCrLf)
.Append([Ô] ,Código[Ô] + vbCrLf)
.Append([Ô] ,endereco[Ô] + vbCrLf)
.Append([Ô] ,estadocivil[Ô] + vbCrLf)
.Append([Ô] ,regcomunhao[Ô] + vbCrLf)
.Append([Ô] ,outra[Ô] + vbCrLf)
.Append([Ô] ,obs[Ô] + vbCrLf)
.Append([Ô] ,código[Ô] + vbCrLf)
.Append([Ô]From tblSocios[Ô] + vbCrLf)
If Not mostrar Then
If codigo <> Nothing Then
.Append([Ô]Where os = {ccodigo}[Ô] + vbCrLf)
End If
.Replace([Ô]{ccodigo}[Ô], codigo)
End If
End With
UserDataTable = Me.ExecutarLeitura(sbusca.ToString).Tables(0)
Return UserDataTable
Catch ex As Exception
MsgBox(ex.Message)
Return Nothing
End Try
End Function
Estou tentando realizar uma consulta em um DataGrid atraves de um textbox, porém, ao clicar em consulta ocorre o erro: [Ô]Nenhum valor fornecido para um ou mais parametros necessários.
Alguem pode me ajudar a localizar o erro?
Abaixo o Cód.
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
St = [Ô]Select empresa From tblCadastro WHERE ordem = [Ô] & Val(txtOS.Text)
tblDataAdapter = New OleDb.OleDbDataAdapter(St, conexao)
tblDataAdapter.Fill(Consulta, [Ô]tblCadastro[Ô])
Dim Result As DataTable = Consulta.Tables([Ô]tblCadastro[Ô])
Dim Result_linha As DataRow
If Result.Rows.Count > 0 Then
Result_linha = Result.Rows(0)
Dim userDataTable As New DataTable
Try
If IsNumeric(txtOS.Text) = True Then
DataGridView1.DataSource = Me.consultar(False, CType(txtOS.Text, Integer), txtOS.Text.Trim)
End If
userDataTable = DataGridView1.DataSource
Me.Ordenar(userDataTable, DataGridView1.CurrentRow.Index)
Catch ex As Exception
End Try
Else
MsgBox([Ô]Não existe OS cadastrada com o número: [Ô] & txtOS.Text)
Exit Sub
End If
End Sub
Private Function consultar(ByVal mostrar As Boolean, ByVal codigo As Integer, ByVal nome As String) As DataTable
Dim UserDataTable As New DataTable
Dim sbusca As New StringBuilder
Try
With sbusca
.Append([Ô]Select OS[Ô] + vbCrLf)
.Append([Ô] ,nome[Ô] + vbCrLf)
.Append([Ô] ,socioadm[Ô] + vbCrLf)
.Append([Ô] ,participacao[Ô] + vbCrLf)
.Append([Ô] ,Código[Ô] + vbCrLf)
.Append([Ô] ,endereco[Ô] + vbCrLf)
.Append([Ô] ,estadocivil[Ô] + vbCrLf)
.Append([Ô] ,regcomunhao[Ô] + vbCrLf)
.Append([Ô] ,outra[Ô] + vbCrLf)
.Append([Ô] ,obs[Ô] + vbCrLf)
.Append([Ô] ,código[Ô] + vbCrLf)
.Append([Ô]From tblSocios[Ô] + vbCrLf)
If Not mostrar Then
If codigo <> Nothing Then
.Append([Ô]Where os = {ccodigo}[Ô] + vbCrLf)
End If
.Replace([Ô]{ccodigo}[Ô], codigo)
End If
End With
UserDataTable = Me.ExecutarLeitura(sbusca.ToString).Tables(0)
Return UserDataTable
Catch ex As Exception
MsgBox(ex.Message)
Return Nothing
End Try
End Function
Olá.
Mudei um pouco aqui, mas só para que possamos encontrar o erro.
Dim UserDataTable As New DataTable
[ô]Dim sbusca As New StringBuilder
Dim sql as String
Try
sql = [Ô]Select OS,NOME,SOCIOADM,PARTICIPACAO,CODIGO,ENDERECO,ESTADOCIVIL,REGCOMUNHAO,OUTRA,OBS,CODIGO[Ô]
sql = sql & [Ô] FROM TBLSOCIOS[Ô]
sql = sql & [Ô] WHERE OS = [ô][Ô] & CODIGO & [Ô][ô][Ô]
UserDataTable = Me.ExecutarLeitura(sql).Tables(0)
Return UserDataTable
Catch ex As Exception
MsgBox(ex.Message)
Return Nothing
End Try
Tenta para ver se funciona.
Abraços
Mudei um pouco aqui, mas só para que possamos encontrar o erro.
Dim UserDataTable As New DataTable
[ô]Dim sbusca As New StringBuilder
Dim sql as String
Try
sql = [Ô]Select OS,NOME,SOCIOADM,PARTICIPACAO,CODIGO,ENDERECO,ESTADOCIVIL,REGCOMUNHAO,OUTRA,OBS,CODIGO[Ô]
sql = sql & [Ô] FROM TBLSOCIOS[Ô]
sql = sql & [Ô] WHERE OS = [ô][Ô] & CODIGO & [Ô][ô][Ô]
UserDataTable = Me.ExecutarLeitura(sql).Tables(0)
Return UserDataTable
Catch ex As Exception
MsgBox(ex.Message)
Return Nothing
End Try
Tenta para ver se funciona.
Abraços
Bom dia Guimoraes
AInda continua com a mesma mensagem.
Por acaso, você tem alguma outra maneira que eu possa fazer isso. Se puder me explicar, agradeço.
Resumidamente, estou fazendo uma tela para orçamentos, e preciso ir incluindo alguns produtos, mas preciso que o datagrid seja atualizado automaticamente, assim que inserido um novo produto.
Obrigado pela ajuda.
Abraço.
AInda continua com a mesma mensagem.
Por acaso, você tem alguma outra maneira que eu possa fazer isso. Se puder me explicar, agradeço.
Resumidamente, estou fazendo uma tela para orçamentos, e preciso ir incluindo alguns produtos, mas preciso que o datagrid seja atualizado automaticamente, assim que inserido um novo produto.
Obrigado pela ajuda.
Abraço.
Quando você chama a Função consultar, quais valores você passa pelo parâmetro?
Abraços.
Abraços.
O problema, está nessa função [Ô]ExecutarLeitura[Ô]. A SQL que vc está passando para ela deve estar mal formada. Verifique se [Ô]CODIGO[Ô] contém alguma coisa.
Mas antes disso:
- Aprenda a fazer uso de DataReader para leitura de dados ao invés de um DataTable, é mais rápido e mais simples.
- Aprenda a usar parametrização nas suas queries, não concatenação de string, isso para evitar uma série de problemas como SQL Injection por exemplo
Não estou fazendo uma crÃtica, longe disso. Estou tentando ajudar, fazendo vc ter melhores práticas no seu código...
Mas antes disso:
- Aprenda a fazer uso de DataReader para leitura de dados ao invés de um DataTable, é mais rápido e mais simples.
- Aprenda a usar parametrização nas suas queries, não concatenação de string, isso para evitar uma série de problemas como SQL Injection por exemplo
Não estou fazendo uma crÃtica, longe disso. Estou tentando ajudar, fazendo vc ter melhores práticas no seu código...
Tópico encerrado , respostas não são mais permitidas