Jump to content

Vb.Net Consulta


aprendiz93
 Share

Recommended Posts

boas

para isso tens de ter uma base de dados. Para ligares à base dados, podes consultar isto:

http://vbtuga.blogspot.com/2008/04/vbnet-gesto-de-dados-em-sql-server.html

http://vbtuga.blogspot.com/2008/04/vbnet-gesto-de-dados-em-sql-server_16.html

Alguma duvida diz

A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Link to comment
Share on other sites

boas

tens aqui uma maneira, que vai procuar o id do cliente. Se exisitir, apresenta uma Msgbox com o Id e o nome. Se não existir, diz que o cliente não está registado

Imports System.Data.OleDb
Public Class Form1
Dim ligação As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Indicar a localização da BD.accdb;Persist Security Info=False;"

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim conecção As New OleDbConnection(ligação)

        Dim sintaxe As String = "Select * from 'nome da tabela' where 'campo a procuar' = 'varivel com o valor a procurar' " ' Ex: "Select * from clientes where ID = @id"

        Dim command As New OleDbCommand(sintaxe, conecção)

        command.Parameters.Add("@id", OleDb.OleDbType.VarChar).Value = TextBox1.Text ' indicar o nome da variavel (@id no ex.) e onde é que vai buscar o valor

        conecção.Open()

        Dim leitor As OleDbDataReader = command.ExecuteReader
        If leitor.HasRows Then

            While leitor.Read
                MsgBox("Id: " + leitor.Item("id").ToString + vbNewLine + "Nome: " + leitor.Item("nome").ToString) ' Apresenta o id e o nome
            End While
        Else
            MsgBox("O Cliente não esta cadastrado!!!") ' se nao existir nehum id, indica que não existe nada
        End If
        conecção.Close()

        sintaxe = Nothing
        conecção = Nothing

End Sub

End Class

A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Link to comment
Share on other sites

Dim sintaxe As String = "Select * from 'tabela1' where 'Codigo' = 'aki seria o nome do botao ? verificar' "

Onde tens 'tabela1' tens de por o nome da tua tabela, em 'Codigo', tens de por o nome do campo dos codigos da BD, e 'aki seria o nome do botao ? verificar', tens de por por exemplo @id

depois tens que indicar que o @id, vai ter o valor a procurar assim

command.Parameters.Add("@id", OleDb.OleDbType.VarChar).Value = TextBox1.Text 

onde o TextBox1.text, é onde diigtas o codigo de cliente.

depois em

MsgBox("Id: " + leitor.Item("id").ToString + vbNewLine + "Nome: " + leitor.Item("nome").ToString)

onde estao os campos  leitor.Item("id") e  leitor.Item("nome"), tens de alterar o id e nome, para o nome dos campos da tua tabela

A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Link to comment
Share on other sites

estas a indicar cenas a mais

Dim sintaxe As String = "Select * from 'tabela1' where 'Código Razão Social CNPJ Tipo de Pessoa Endereço Número Complemento CEP Bairro Cidade Estado Telefone Observações' = '@id' 

Experimenta

Dim sintaxe As String = "Select * from tabela1 where Código = @id"

sem as ' em tabela1 , codigo, @id

A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Link to comment
Share on other sites

 Dim conecção As New OleDbConnection(ligação)

        Dim sintaxe As String = "Insert Into clientes ([nome], [morada]) values (@nome, @morada)"  ' onde esta ([nome], morada]) é por o nome dos campos (igual aos da BD). Em (@nome, @morada), é por as variáveis que vão receber os dados. Essas variaveis vão ser declarados em baixo, no command.parameters. 

        Dim command As New OleDbCommand(sintaxe, conecção)


        command.Parameters.Add("@nome", OleDb.OleDbType.VarChar).Value = TextBox1.Text
        command.Parameters.Add("@morada", OleDb.OleDbType.VarChar).Value = TextBox2.Text

        conecção.Open()

        Dim insere As Integer = command.ExecuteNonQuery()

        If insere < 1 Then
            MsgBox("O cliente não foi registado!! Tente novamente!!")
        Else
            MsgBox("O cliente foi registado com sucesso!!")
        End If

        conecção.Close()

        sintaxe = Nothing
        conecção = Nothing

A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Link to comment
Share on other sites

Amigo deixei meu codigo assim mais continua com erro sabe me dizer oq seria?

Imports System.Data.OleDb

Public Class Form2

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim conecção As New OleDbConnection()

        Dim sintaxe As String = "Insert Into tabela1 ([Código], [Descrição]) values (@Texbox1, @Texbox2)"  ' onde esta ([nome], morada]) é por o nome dos campos (igual aos da BD). Em (@nome, @morada), é por as variáveis que vão receber os dados. Essas variaveis vão ser declarados em baixo, no command.parameters.

        Dim command As New OleDbCommand(sintaxe, conecção)

        command.Parameters.Add("@Textbox1", OleDb.OleDbType.VarChar).Value = TextBox1.Text

        command.Parameters.Add("@Textbox2", OleDb.OleDbType.VarChar).Value = TextBox2.Text

        conecção.Open()

        Dim insere As Integer = command.ExecuteNonQuery()

        If insere < 1 Then

            MsgBox("O cliente não foi registado!! Tente novamente!!")

        Else

            MsgBox("O cliente foi registado com sucesso!!")

        End If

        conecção.Close()

        sintaxe = Nothing

        conecção = Nothing

    End Sub

End Class

Link to comment
Share on other sites

o problema é que estas a criar a connecção

Dim conecção As New OleDbConnection()

mas não estas a indicar o Provedor, nem a localização da BD.

Tenta assim

Dim ligação As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=Indicar a localização da BD.accdb;Persist Security Info=False;"

Dim conecção As New OleDbConnection(ligação)

A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Link to comment
Share on other sites

Amigo agora deu outro erro ta dificil sair este negócio de uma olhada no codigo:

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

        Dim ligação As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Documents and Settings\thiago\Meus documentos\Visual Studio 2008\Projects\Sistema Thiago\Sistema Thiago\Clientes.accdb;Persist Security Info=False;"

        Dim conecção As New OleDbConnection(ligação)

        Dim sintaxe As String = "Insert Into tabela1 ([Código], [Razão Social], [CNPJ], [Tipo Pessoa], [Endereço], [Número], [Complemento], [CEP], [bairro], [Cidade], [Estado], [Telefone], [Observação]) values (@textbox1, @textbox2, @textbox3, @textbox4, @textbox5, @textbox6, @textbox7, @textbox8, @textbox9, @DomainUpDown1, @DomainUpDown2, @textbox10, @textbox11)" 

        Dim command As New OleDbCommand(sintaxe, conecção)

        command.Parameters.Add("@Textbox1", OleDb.OleDbType.VarChar).Value = TextBox1.Text

        command.Parameters.Add("@Textbox2", OleDb.OleDbType.VarChar).Value = TextBox2.Text

        command.Parameters.Add("@Textbox3", OleDb.OleDbType.VarChar).Value = TextBox3.Text

        command.Parameters.Add("@Textbox4", OleDb.OleDbType.VarChar).Value = TextBox4.Text

        command.Parameters.Add("@Textbox5", OleDb.OleDbType.VarChar).Value = TextBox5.Text

        command.Parameters.Add("@Textbox6", OleDb.OleDbType.VarChar).Value = TextBox6.Text

        command.Parameters.Add("@Textbox7", OleDb.OleDbType.VarChar).Value = TextBox7.Text

        command.Parameters.Add("@Textbox8", OleDb.OleDbType.VarChar).Value = TextBox8.Text

        command.Parameters.Add("@Textbox9", OleDb.OleDbType.VarChar).Value = TextBox9.Text

        command.Parameters.Add("@DomainUpDown1", OleDb.OleDbType.VarChar).Value = DomainUpDown1.Text

        command.Parameters.Add("@DomainUpDown2", OleDb.OleDbType.VarChar).Value = DomainUpDown2.Text

        command.Parameters.Add("@Textbox10", OleDb.OleDbType.VarChar).Value = TextBox10.Text

        command.Parameters.Add("@Textbox11", OleDb.OleDbType.VarChar).Value = TextBox11.Text

        conecção.Open()

        Dim insere As Integer = command.ExecuteNonQuery()

        If insere < 1 Then

            MsgBox("O cliente não foi registado!! Tente novamente!!")

        Else

            MsgBox("O cliente foi registado com sucesso!!")

        End If

        conecção.Close()

        sintaxe = Nothing

        conecção = Nothing

    End Sub

esta dando erro nesta linha:

Dim insere As Integer = command.ExecuteNonQuery()

Link to comment
Share on other sites

        command.Parameters.Add("@Textbox1", OleDb.OleDbType.VarChar).Value = TextBox1.Text

        command.Parameters.Add("@Textbox2", OleDb.OleDbType.VarChar).Value = TextBox2.Text

        command.Parameters.Add("@Textbox3", OleDb.OleDbType.VarChar).Value = TextBox3.Text

        command.Parameters.Add("@Textbox4", OleDb.OleDbType.VarChar).Value = TextBox4.Text

        command.Parameters.Add("@Textbox5", OleDb.OleDbType.VarChar).Value = TextBox5.Text

        command.Parameters.Add("@Textbox6", OleDb.OleDbType.VarChar).Value = TextBox6.Text

        command.Parameters.Add("@Textbox7", OleDb.OleDbType.VarChar).Value = TextBox7.Text

        command.Parameters.Add("@Textbox8", OleDb.OleDbType.VarChar).Value = TextBox8.Text

        command.Parameters.Add("@Textbox9", OleDb.OleDbType.VarChar).Value = TextBox9.Text

        command.Parameters.Add("@DomainUpDown1", OleDb.OleDbType.VarChar).Value = DomainUpDown1.Text

        command.Parameters.Add("@DomainUpDown2", OleDb.OleDbType.VarChar).Value = DomainUpDown2.Text

        command.Parameters.Add("@Textbox10", OleDb.OleDbType.VarChar).Value = TextBox10.Text

        command.Parameters.Add("@Textbox11", OleDb.OleDbType.VarChar).Value = TextBox11.Text

Ele está a indicar todos os campos como Varchar, mas deve ter alguns do tipo Inteiro como o Número, Código, etc.

Pedro Martins

Não respondo a duvidas por PM

Link to comment
Share on other sites

Que tipos de dados tens na Base de dados. verifica se os campos na base de dados, coincidem com o tipo de dados que estas a mandar guardar. 

Um campo string na bd, aceita inteiros, mas um campo inteiro na bd, não aceita strings.

A informática chegou para resolver problemas que antes não existiam

Quem ri por último é porque está conectado a 52 Kbs.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.