Jump to content

Verificar valores numa Base de Dados


kazzx
 Share

Recommended Posts

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. 👍

Link to comment
Share on other 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 👍 :

        '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

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Link to comment
Share on other sites

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

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
Link to comment
Share on other sites

"aUHahuhaUAhuAHau" ?

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

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.

Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Link to comment
Share on other 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 👍

Link to comment
Share on other sites

"aUHahuhaUAhuAHau" ?

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

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 =(

Link to comment
Share on other 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  👍

Link to comment
Share on other 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 ,  🙂

Link to comment
Share on other 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.

Making the impossible possible and pwing the world on db at a time.

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.