RECUPERAR CADASTRO

MOREIRA 14/04/2017 19:23:53
#473318
Boa noite amigos.
tendo dificuldades em implementar a busca de produto na tabela

se possível, dicas de boas praticas.
obrigado a todos.

  Private Sub txt_CodRefBarra_LostFocus(sender As Object, e As EventArgs) Handles txt_CodRefBarra.LostFocus

ConectarBD() [ô]Abro o banco de dados
Dim Produto As New DataTable
DA = New FbDataAdapter([Ô]Select * from PRODUTO WHERE REFERENCIA =[ô][Ô] & txt_CodRefBarra.Text.Trim & [Ô][ô][Ô], strConexao.ConnectionString)
DA.Fill(Produto) [ô]Carrego as informações obtidas no datatable

If Produto.Rows.Count = 0 Then
MsgBox([Ô]Produto não cadastrado ou não localizado![Ô], MsgBoxStyle.Exclamation, [Ô]Atenção[Ô])
Else
txt_DescProduto.Text = Produto. [ô] --- >aqui não estou acertando.
End If
strConexao.Close() [ô]Fecho a conexão

End Sub
ACCIOLLY 14/04/2017 21:33:19
#473320
A sim
Na verdade você tem que especificar qual a linha (caso seu select retorne mais de que uma) e a coluna deseja pegar. assim:
txt_DescProduto.Text = Produto.Rows[0][[Ô]desconto[Ô]].ToString();

Isso em C#. Em VB provavelmente você irá trocar os colchetes [Ô][ ][Ô] por parênteses.
E Como todo indice começa do zero, repare que pela lógica está pegando a primeira linha na coluna desconto. Por isso especifique a coluna entre aspas duplas já que é uma string.
MOREIRA 16/04/2017 09:33:38
#473323
Citação:

:
A sim
Na verdade você tem que especificar qual a linha (caso seu select retorne mais de que uma) e a coluna deseja pegar. assim:

txt_DescProduto.Text = Produto.Rows[0][[Ô]desconto[Ô]].ToString();

Isso em C#. Em VB provavelmente você irá trocar os colchetes [Ô][ ][Ô] por parênteses.
E Como todo indice começa do zero, repare que pela lógica está pegando a primeira linha na coluna desconto. Por isso especifique a coluna entre aspas duplas já que é uma string.


Citação:

:
A sim
Na verdade você tem que especificar qual a linha (caso seu select retorne mais de que uma) e a coluna deseja pegar. assim:

txt_DescProduto.Text = Produto.Rows[0][[Ô]desconto[Ô]].ToString();

Isso em C#. Em VB provavelmente você irá trocar os colchetes [Ô][ ][Ô] por parênteses.
E Como todo indice começa do zero, repare que pela lógica está pegando a primeira linha na coluna desconto. Por isso especifique a coluna entre aspas duplas já que é uma string.




Amigo, não retornou o valor solicitado.
NICKOSOFT 16/04/2017 12:06:42
#473325
  
Dim parametrosNomes(1) As String
parametrosNomes(0) = [Ô]@id[Ô]

Dim parametrosValores(1) As String
parametrosValores(0) = mId

sql = [Ô]select * from usuarios where id = @id[Ô]
Dim Manipula As New dalManipulaBD
Dim ds As DataSet
ds = Manipula.RetornaDS(sql, parametrosNomes, parametrosValores)
If ds.Tables(0).Rows.Count > 0 Then
ID = ds.Tables(0).Rows(0).Item([Ô]id[Ô]).ToString
Usuario = ds.Tables(0).Rows(0).Item([Ô]usuario[Ô]).ToString
Else
ID = 0
End If




Public Overloads Function RetornaDS(ByVal sql As String, ByVal ParameterNames() As String, ByVal parameterVals() As String) As DataSet
Using connection As MySqlConnection = AbreConexao()
Using da As MySqlDataAdapter = New MySqlDataAdapter(sql, connection)
Dim table As New DataTable
FillParameters(da.SelectCommand, ParameterNames, parameterVals)
Dim ds As DataSet = Nothing
ds = New DataSet()
da.Fill(ds)
Return ds
End Using
End Using
End Function

RICARDOCENTENO 16/04/2017 17:56:34
#473327
Resposta escolhida
Olá,

Suspeito que o campo referência seja único certo? Caso for você assim:

Private Sub txt_CodRefBarra_LostFocus(sender As Object, e As EventArgs) Handles txt_CodRefBarra.LostFocus

ConectarBD() [ô]Abro o banco de dados
Dim Produto As New DataTable
DA = New FbDataAdapter([Ô]Select * from PRODUTO WHERE REFERENCIA =[ô][Ô] & txt_CodRefBarra.Text.Trim & [Ô][ô][Ô], strConexao.ConnectionString)
DA.Fill(Produto) [ô]Carrego as informações obtidas no datatable

If Produto.Rows.Count = 0 Then
MsgBox([Ô]Produto não cadastrado ou não localizado![Ô], MsgBoxStyle.Exclamation, [Ô]Atenção[Ô])
Else
[ô]Aqui está o código, teste para verificar...os nomes no parênteses são os campos correspondentes ao seu banco de dados
[ô]##################################################################################################
[b] txt_DescProduto.Text = Produto.Rows(0)([Ô]DescPronto[Ô]).ToString.
txt_Nome.Text = Produto.Rows(0)([Ô]Nome[Ô]).ToString

[ô]##################################################################################################[/b]

End If
strConexao.Close() [ô]Fecho a conexão

End Sub
MOREIRA 16/04/2017 19:51:28
#473328
Citação:

:
Olá,

Suspeito que o campo referência seja único certo? Caso for você assim:

Private Sub txt_CodRefBarra_LostFocus(sender As Object, e As EventArgs) Handles txt_CodRefBarra.LostFocus

ConectarBD() [ô]Abro o banco de dados
Dim Produto As New DataTable
DA = New FbDataAdapter([Ô]Select * from PRODUTO WHERE REFERENCIA =[ô][Ô] & txt_CodRefBarra.Text.Trim & [Ô][ô][Ô], strConexao.ConnectionString)
DA.Fill(Produto) [ô]Carrego as informações obtidas no datatable

If Produto.Rows.Count = 0 Then
MsgBox([Ô]Produto não cadastrado ou não localizado![Ô], MsgBoxStyle.Exclamation, [Ô]Atenção[Ô])
Else
[ô]Aqui está o código, teste para verificar...os nomes no parênteses são os campos correspondentes ao seu banco de dados
[ô]##################################################################################################
[b] txt_DescProduto.Text = Produto.Rows(0)([Ô]DescPronto[Ô]).ToString.
txt_Nome.Text = Produto.Rows(0)([Ô]Nome[Ô]).ToString

[ô]##################################################################################################[/b]

End If
strConexao.Close() [ô]Fecho a conexão

End Sub



Olá RICARDOCENTENO, boa noite

1º - ao informar o numero que não está cadastrado, retorno a mensagem não cadastrado, até aí tudo certinho..

mas ao informar um numero existente, não retorna o valor Descrição do campo




mas exibe esse erro aqui




Aqui a conexão

  Imports FirebirdSql.Data.FirebirdClient
Module modBanco
Public strConexao As FbConnection = New FbConnection([Ô]User=SYSDBA;[Ô] &
[Ô]Password=masterkey;[Ô] &
[Ô]Database=[Ô] & Application.StartupPath & [Ô]\BDADOS.fdb;[Ô] &
[Ô]Port=3050;[Ô] &
[Ô]Dialect=3;[Ô] &
[Ô]Charset=NONE;[Ô] &
[Ô]Connection lifetime=0;[Ô] &
[Ô]Connection timeout=15;[Ô] &
[Ô]Pooling=True;[Ô] &
[Ô]Packet Size=8192;[Ô] &
[Ô]Server Type=0[Ô])
Public Sub ConectarBD()
Try
Cursor.Current = Cursors.WaitCursor
strConexao.Open()
Cursor.Current = Cursors.Default
Catch ex As Exception
MsgBox([Ô]O programa não conseguiu abrir a base de dados devido ao seguinte erro:[Ô] & Chr(13) & Chr(13) & [Ô][ô][ô][Ô] & ex.Message.ToUpper & [Ô][ô][ô].[Ô] & Chr(13) & Chr(13) & [Ô]Entre em contato com o suporte informando o código de erro [ô][ô][Ô] & ex.HResult & [Ô][ô][ô]. O sistema será finalizado![Ô], MsgBoxStyle.Exclamation, [Ô]Erro [Ô] & ex.HResult)
End Try
End Sub

End Module

Tópico encerrado , respostas não são mais permitidas