• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

kazzx

Verificar valores numa Base de Dados

10 mensagens neste tópico

viva,

então é o seguinte ..

tenho uma aplicação que já permite a inserção de dados numa base de dados (feita em Access), cada campo da tabela da base de dados recebe o valor introduzido em determinada caixa de texto da aplicação, até aqui tudo bem.

bom, agora a minha questão é: num outro formulário da mesma aplicação tenho uma caixa de texto e um botão, eu queria que depois de escrever o nome na caixa de texto e carregar no botão, se esse nome que escrevi existir na base de dados apresentar por exemplo numa listbox e se não existir não apresentar nada.. acho que me fiz entender.

obrigado,

até à proxima. :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

COUNT() ?

Basta uma query e consequente leitura de dados.

Se usares os wizards, os binds e todas essas coisas estranhas (que curiosamente complicam muito mais um conceito que de si é muito simples) não te posso ser muito útil.

Caso contrário, basta uma query do género:

"SELECT COUNT(*) FROM Utilizadores WHERE Nome LIKE '%" & TextBox1.Text & "%'"

Até te dou a solução caso quisesses usar o DataGate :thumbsup: :

        'Para meter num nível inferior
        Private DG As New GestorLigacoes

        'Para meter, por exemplo num módulo de arranque
        DG.AdicionarLigacao(MSACCESS, "LigAcc")
        DG.Configurar("LigAcc", "c:\bd.mdb")

        'O código de execução
        Dim Nome As String = "Zeca"
        Dim DT As DataTable = DG.Executar("LigAcc", "SELECT * FROM Utilizadores WHERE Nome LIKE '%" & Nome & "'%", Texto)

        If DT.Rows.Count = 0 Then MsgBox("Sem resultados") : Exit Sub
        For Each DR As DataRow In DT.Rows
            MsgBox("Encontrado: " & DR("Nome").ToString)
        Next

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

E ai está o ribeiro sempre a fazer publicidade aos seus softwares aUHahuhaUAhuAHau :thumbsup:

Bom outro metodo usando SQLClient ...

Dim nome As String = "Nome"
        Dim da As New SqlClient.SqlDataAdapter("Select * from Clientes where nome like '%" & nome & "%'", cnn)
        Dim ds As New DataSet
        da.Fill(ds)
        If ds.Tables(0).Rows.Count = 0 Then
            MsgBox("Sem Clientes")
        Else
            For Each DR As DataRow In ds.Tables(0).Rows
                MsgBox("Encontrado: " & DR("Nome").ToString)
            Next
        End If

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

"aUHahuhaUAhuAHau" ?

Não tenho o mínimo interesse em difundir software como o DataGate para proveito próprio. :thumbsup:

Apenas acho que é uma maneira simples de por as coisas, e por ser código é aberto serve de base de aprendizagem. Aliás, foi feito de propósito para um dos concursos de código livre.

Internamente o DataGate até é parecido com o que tens aí. Só te esqueceste de mostrar a connection string, o que vai baralhar o rapaz.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Confesso que fiquei baralhado, isto porque os meus conhecimentos em termos de SQL e ligações a bases de dados são nulos, ou quase. há que confessar.

gostava de uma explicação detalhada de como proceder a essa operação.. se tenho de abrir a base de dados no código do outro formulário, que instruções tenho de dar para se o nome existir, aparecer por exemplo num datagridview logo abaixo da caixa de texto onde escrevi o nome a pesquisar.. essas coisas

obrigado,

cUmps :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Então vamos lá começar por perceber como estás a fazer o que já tens.

Como vais buscar os dados para fazer o que já estás a fazer ?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

"aUHahuhaUAhuAHau" ?

Não tenho o mínimo interesse em difundir software como o DataGate para proveito próprio. :thumbsup:

Apenas acho que é uma maneira simples de por as coisas, e por ser código é aberto serve de base de aprendizagem. Aliás, foi feito de propósito para um dos concursos de código livre.

Internamente o DataGate até é parecido com o que tens aí. Só te esqueceste de mostrar a connection string, o que vai baralhar o rapaz.

estava a brincar =(

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

ora bem ..

eu tenho uma aplicação que no futuro irá ter N funcionalidades, mas para já quero-me focar apenas nesta.

então é o seguinte: eu tenho um formulário com várias caixas de texto, onde depois de inserir dados e clicar no botão 'Validar', esses dados são registados na base de dados. Exemplo: ao escrever o meu nome, localidade e morada em cada caixa de texto, estes dados são registados nos campos "Nome", "Localidade" e "Morada" de uma tabela da base de dados. Até aqui está tudo entendido certo? pronto.

agora, e falando da minha questão, tenho outro formulário à parte com uma caixa de texto, um botão e um datagridview.

a caixa de texto servirá para introduzir um nome.

o botão servirá para percorrer a base de dados para procurar se o nome existe

o datagridview servirá para apresentar o nome, se este existir (se não existir então apresentar uma mensagem ao utilizador do tipo 'Não existe registo' ou algo do género.

basicamente, após a inserção de um nome, quero que apresente o nome no datagrid se existir e dar mensagem de aviso se não existir.

pronto, acho que agora consegui ser explícito.

já agora, o código que utilizei para permitir a inserção de dados na base de dados foi este:

   Private Sub btnvalida_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnvalida.Click

        Try
            Dim conn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\M a n e l\Ambiente de trabalho\Gerir Filas de Espera\Gerir Filas de Espera\DataBase\Fila de Espera.mdb"

            Dim SQL As String = "INSERT INTO Utilizadores ([Nome Completo],[Data de Nascimento], [E-Mail], [Telemóvel], [Morada], [sexo], [Localidade], [Profissão]) values (?,?,?,?,?,?,?,?)"


            Using ConnectionState As New OleDb.OleDbConnection(conn)

                Dim command As New OleDb.OleDbCommand(SQL, ConnectionState)

                command.Parameters.Add("Nome Completo", OleDb.OleDbType.VarChar).Value = txtnomecomp.Text
                command.Parameters.Add("Data de Nascimento", OleDb.OleDbType.DBDate).Value = dtpd.Text
                command.Parameters.Add("E-Mail", OleDb.OleDbType.VarChar).Value = txtemail.Text
                command.Parameters.Add("Telemóvel", OleDb.OleDbType.UnsignedInt).Value = txttelemovel.Text
                command.Parameters.Add("Morada", OleDb.OleDbType.VarChar).Value = txtmorada.Text
                command.Parameters.Add("Sexo", OleDb.OleDbType.VarChar).Value = cbsexo.Text
                command.Parameters.Add("Localidade", OleDb.OleDbType.VarChar).Value = cblocalidade.Text
                command.Parameters.Add("Profissão", OleDb.OleDbType.VarChar).Value = cbprofissao.Text
       
                ConnectionState.Open()
                Dim x As Integer = command.ExecuteNonQuery()
                If x <> 1 Then
                    Throw New ArgumentException("Não foi possível...")

                End If

                MsgBox("Dados Inseridos", MsgBoxStyle.Information)
                txtemail.Clear()
                txtnomecomp.Clear()
                txttelemovel.Clear()
                txtmorada.Clear()
                txtlocalidade.Clear()
                cod1.Clear()
                cod2.Clear()
                cblocalidade.Text = Nothing
                cbprofissao.Text = Nothing
                cbsexo.Text = Nothing
                dtpd.Text = Nothing

            End Using
        Catch ex As Exception

            MessageBox.Show(ex.Message, My.Application.Info.Title, MessageBoxButtons.OK, MessageBoxIcon.Error)

        End Try

    End Sub

agora, queria saber como fazer para a duvida que relatei agora.

obrigado,

ajudem-me  :thumbsup:

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

eu tive ajuda de um professor nesse código e nos testes todos que fiz ao formulário de inserção de dados (aquele que mostrei o codigo), em nenhum me aparece a mensagem a dizer "Não foi possível.." como se pode ver na parte mais final do código...

o que era suposto , ou melhor, quando era suposto aparecer essa mensagem? e o que fazem as funções de declarar a variavel 'x' ?

confesso que foi o meu professor que me disse muito do código, pois como já disse ainda nao aprendi muito sobre SQL (interagindo com aplicações) e tenho de acabar um projecto para um 'cybercafe' que requer nas suas funcionalidades estas instruçoes SQL..

obrigado ,  :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

@kazzx

Só uma observação, não é que tenho alguma coisa contra ao OleDb..

Mas acho que em .NET para MS SQL .. não é o mais apropriado visto que o .NET tem a class exclusiva para o MS SQL/MS Access ..

SqlDataAdapter, SqlConnection, SqlCommand, etc..

Imports System.Data.SqlClient

Compr.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora