Jump to content
Brav01

Algumas questões

Recommended Posts

Brav01

Boas!

Eu estou a tratar da minha pap e tenho algumas duvidas eu já comprei uns livros de visual basic mas algumas coisas que quero fazer não

estão no livro umas sei que dão para fazer porque já vi uns vídeos onde fizeram só não disseram como e outras que não sei se são possível pela qual vinha pedir ajuda!

1º questão:

Em bases de dados de SQL no visual basic 2010 da para adicionar uma imagem ao registo de forma que o registo é mostrado mostrar uma imagem juntamente com o registo? Sei que dá sem base de dados agora com não sei  🤔

Ex: ponho um registo da worten e assim por uma imagem da worten 

Share this post


Link to post
Share on other sites
Andrepereira9

Boas

Ve isto

So um aparte:

Não será melhor guardares as imagens numa pasta, e na BD guardas o local da imagem. Depois ao apresentares os dados, em vez de ir buscar a imagem a BD, vai buscar á pasta.


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

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

Share this post


Link to post
Share on other sites
Brav01

Obrigado Andrepereira9!

Ainda tenho outras questões

por exemplo quero cria apenas um formulário para mostrar e depois queria por um botão para outro formulário onde poderia editar, adicionar, apagar , etc. mas que quando voltasse ao formulário de mostrar os dados ja tivessem actualizados ja tinha experimentado isto em outro programa mas não consegui.

Existe alguma forma de o fazer?

Share this post


Link to post
Share on other sites
Andrepereira9

Existe.

Como é que estás a fazer para mostrar os dados, a primeira vez?

Ao mudares para o formulário 'Editar, Adicionar, Apagar', o que fazes ao formulário de consulta? Fica aberto, escondes, fechas,...?

Se o fechares, ao abrires depois de alterar os dados, ele fica logo actualizado.

Senão, metes o mesmo código que utilizas para apresentares os dados, mas no evento FormClosing do formulario 'Editar, Adicionar, Apagar'


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

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

Share this post


Link to post
Share on other sites
Brav01

tenho 2 formulários um em que serve só para mostrar com os campos todos em labels e o outro formulário está normal com textbox e, etc

mas eu quero é que ele faça actualizar o formulário de consulta que acaba por ser a mesma base de dados 2 vezes.

ex: tenho um formulário de clientes

com o nome, morada, contactos etc. Mas este formulário é só composto por labels não existe nada para escrever serve simplesmente para mostrar como se fosse uma listagem de todos os clientes e queria por um botão para outro formulário em que servia para editar esses dados ou até adicionar novos clientes mas uma vez que fecho o formulário de editar e vou para o de consulta continuo a ter os mesmo clientes que já tinha e não mostra os novos ou mesmo os alterados apenas mostra uma vez que fecho o programa e o volto a abrir.

agora queria saber se existe maneira de actualizar o formulário sem fechar o programa fazendo tipo um update

Filipe Martins

P.S - o "aparte que m mandastes está para o visual basic 2005 express eu estou com o 2010 express e estou com alguns problemas não sabes de mais assim mais recente?

Share this post


Link to post
Share on other sites
Brav01

Alguém me pode ajudar com a questão do 2 formulários é que precisava mesmo dessa ajuda :S 

Share this post


Link to post
Share on other sites
Andrepereira9

Boas

Se tu  fechares o formulário de clientes, ao abrir o formulário de alteração de dados, quando voltares a abrir o formulário de clientes, ele já tem de ter os dados novos.

Se tu deixas o form aberto, o que podes fazer é voltar a chamar o código que utilizas na abertura do formulário de cliente, depois de actualizares os dados na BD, ou então quando fechas o Formulário de alteração.

Se ainda tiveres duvidas, mete aqui o código que tens para apresentares os dados no formulário de clientes


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

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

Share this post


Link to post
Share on other sites
Brav01

ai está eu não usei grande código a única coisa que fiz foi arrastar a informação do data source e apaguei a barra e criei um botão em k pus o código

me.hide

form2.show

abre o segundo form tal e qual ao primeiro mas com a barra de guardar apagar, etc, e tenho um botão igual ao outro

me.hide

form1.show

mas acho que já arranjei uma forma de resolver este problema sem sair do form

simplesmente fiz para quando o form é aberto não parecer os botões de guardar e assim e pus uma label dizer editar tirando o código de guardar do formulário tanto assim em textbox normalmente mas mesmo mudando as coisas não altera

Share this post


Link to post
Share on other sites
Brav01

outra questão ao adicionar dados para uma base de dados no vb quando não se preenche ou se repete o campo da chave primária o programa fecha e da um erro existe alguma maneira de evitar que ele feche com erro por exemplo aparecer uma janela a dizer campo id repetido ou mesmo campo x por preencher?

Share this post


Link to post
Share on other sites
passado

Penso que o try catch, retorna o que estavas a pedir

Mas o melhor nesse caso e que costumo fazer, é fazer o teste se esses campos obrigatorios estao preenchidos, se sim, segue a introdução senao da uma mensagem de erro.

Share this post


Link to post
Share on other sites
Brav01

E como faço isso podes mostrar-me umas linhas de Código para ver como se faz?

é que ainda sou um bocado novato quanto a isto

mas por acaso pensei que podia por tipo uma messagebox em que declarava o campo de chave primária como uma variável e punha um if then else

caso o campo estivesse vazio mostrava a mensagem no caso de guardar sem preencher esse campo mas quanto ao caso de repetição é que não sei como fazer pensei tipo

Dim x = Me.contastableadapter1.contas(idmaskedtextbox.Text)
If x Is Nothing Then
     Messagebox.Show(" Campo Chave vazio ")
End If

uma coisa assim já tentei mas não deu em nada, mas também nem sei se é possível e se é não faço a mínima ideia como!!

Share this post


Link to post
Share on other sites
passado

Sim eu faço com um If do genero

If textbox.text="Ola" then

'Codigo de introdução

Then
Msgbox("erro")
end if

Reparei que estas a usar os bidding sources, porque nao tentas ser tu manualmente a construir o codigo e teres total control?

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

Éu coloco sempre o codigo de introdução dentro de um try catch, caso resulte algum erro ele vai retornar o erro que deu


If TextBoxID.TextLength > 0 Then
            Dim pass As String = Crypt(autopass)
            ' Texto de ligação à base de dados
            Dim myConnectionString As String = My.Settings.BDConnectionString

            ' Comando que irá actualizar os dados na tabela "MyTable" em que os campos
            ' "username" e "date" são passados através de parâmetros (o ID é um exemplo de um identificador único)
            Dim SQL As String = "UPDATE TB_Login SET [password] = @pass WHERE [id_user] = @id"

            ' Cria uma nova ligação à base de dados
            Dim connection As New SqlConnection(myConnectionString)

            ' Criação do comando indicando a instrução e a ligação
            Dim command As New SqlCommand(SQL, connection)

            ' Indicação dos parâmetros que serão actualizados
            command.Parameters.Add("@pass", SqlDbType.NVarChar).Value = pass
            command.Parameters.Add("@id", SqlDbType.Int).Value = TextBoxID.Text

            ' Abre a ligação, executa o comando e guarda em "x" o número de registos actualizados
            connection.Open()

            Dim x As Integer = command.ExecuteNonQuery()
            If x < 1 Then
                Alert(Me, "Actualização Falhada", 1)
            Else
                If My.Settings.emailactivo = True Then
                    mail(TextBoxMail.Text, "A sua password no sistema AluGest foi alterada por um administrador a sua nova password é :" & Crypt(pass), "AluGest - Password Alterada")
                    Alert(Me, "Password Alterada", 2)
                    bt_refresh.Text = "Actualizar"
                    bt_refresh.Image = ImageListBT_Refresh.Images(1)
                Else
                    criaficheiro(TextBoxNome.Text, TextBoxUser.Text, Crypt(pass), True)
                    Alert(Me, "Password Alterada", 2)
                    bt_refresh.Text = "Actualizar"
                    bt_refresh.Image = ImageListBT_Refresh.Images(1)
                End If

                ' Fecha a ligação e limpa as variáveis
                connection.Close()
                connection = Nothing
                command = Nothing
            End If
        Else
            Alert(Me, "Seleccione um Utilizador", 1)
        End If

Tens aqui um exemplo meu a testar uma condição e so depois a fazer o update

Share this post


Link to post
Share on other sites
Brav01

Bem isto para mim ainda é um bocado chines xD

mas vou estudar bem isto tenho 2 manuais de Visual Basic e vou ver se  tb consigo ver mais alguma coisa mas obrigado na mesma :cheesygrin:

outra questao

tenho uma base de dados em access ligada ao visual basic 2010 express para fazer um login mas no access eu pus como chave primária o id e como numeração automática mas em vb nao fica como faço para por como numeração automática?

Share this post


Link to post
Share on other sites
Brav01

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        Dim connection As New SqlClient.SqlConnection
        Dim command As New SqlClient.SqlCommand
        Dim adaptor As New SqlClient.SqlDataAdapter
        Dim dataset As New DataSet

        connection.ConnectionString = ("Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\membros.mdf;Integrated Security=True;User Instance=True")
        command.CommandText = " SELECT * FROM [Membros] WHERE Utilizadores= '" & TextBox1.Text & "' AND Password= '" & TextBox2.Text & "';"
        connection.Open()

        command.Connection = connection

        adaptor.SelectCommand = command
        adaptor.Fill(dataset, "0")
        Dim count = dataset.Tables(0).Rows.Count

        If count > 0 Then
            Pagina_inicial.Show()
            Me.Close()
            TextBox1.ResetText()
            TextBox2.ResetText()
        Else
            MessageBox.Show("Dados Incorretos", "Login", MessageBoxButtons.OK, MessageBoxIcon.Error)
            TextBox1.ResetText()
            TextBox2.ResetText()

        End If

    End Sub

alguem me pode dizer se está aqui algo mal decidi fazer um login em sql mas esta a dar um erro quando carrego login

adaptor.SelectCommand = command
        adaptor.Fill(dataset, "0")
        Dim count = dataset.Tables(0).Rows.Count

o erro vem daqui pelo que o programa diz

no erro diz isto "Invalid column name 'Utilizadores'."

Share this post


Link to post
Share on other sites
Caça

Existe alguma coluna chamada Utilizadores?


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
Brav01

era utilizador enganei-me mas agora resolvo esse problema e aparece um maior quando ia adicionar os dados da base de dados a form da data source aparece uma janela com isto como titulo tentei adicionar outras tabela ja criadas e a mesma coisa ja não sei o que fazer nem percebo nda

"failed to create component !blindingnavigator". the error message folows" depois bue tretas

o que faço?? :S

Share this post


Link to post
Share on other sites
Caça

Onde é que dá esse erro? Mostra o código, acho que apagaste algo que não devias...


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
Brav01

pois ai está é que não sei o que apaguei isto ficou assim depois de ter feito o login quando cria criar o formulário para novo utilizadores ficou assim não sei o que fiz mas pronto já estou a fazer de novo mas em outro projecto

Share this post


Link to post
Share on other sites
Brav01

Uma pergunta rápida!

É normal quando estou a preencher dados para adicionar numa base de dados com o programa aberto chegar a uma textbox e não conseguir fazer mais nada é como se ficasse preso e não consigo mover para outras textboxs ou mesmo eliminar é que já não é a primeira vez que acontece e não pus nenhum código para isto acontecer não sei se é do programa ou do computador =/

Share this post


Link to post
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

×
×
  • 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.