Ir para o conteúdo
zephirus

Access database no Sharp Develop

Mensagens Recomendadas

zephirus    0
zephirus

Olá,

Tenho uma base de dados em Access que quero aceder no meu programa. Estou a programar em VB.NET no sharp develop e não consigo introduzir a base de dados. Alguém me pode ajudar?

Obrigado

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
zephirus    0
zephirus

Define "introduzir a base de dados". O que pretendes ao certo?

Eu tenho o ficheiro da base de dados já criado, o qual posso abrir no access. O que eu pretendo é aceder aos dados desse ficheiro no meu programa. Pegar em valores de colunas e linhas determinadas  e colocá-los numa tabela ou listbox, etç. O que eu não estou a conseguir é integrar o ficheiro de access no projecto. Como disse, eu estou a usar o sharpdevelop. No Visual Studio eu consigo fazer isto.

Espero não ter sido confuso. Obrigado

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
zephirus    0
zephirus

Mas no Visual Studio como fazias? Recorrias aos wizards ou fazias tu o código ?

No Visual Studio fazia pelo wizard. Confesso que não estou muito dentro do código para aceder a bases de dados.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
zephirus    0
zephirus

Acho que já descobri uma maneira. Tenho uma form com um botão e um DataGrid e para o button.click tenho o seguinte código (exemplo):

Sub Button1Click(sender As Object, e As EventArgs)

Dim conexao As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\funcionarios.mdb"
    Dim sql As String = "Select * from funcionarios"

Dim da As New data.OleDb.OleDbDataAdapter(sql,conexao)
    Dim ds As New Data.DataSet
    
    DataGrid1.CaptionText = "funcionarios"
    da.Fill(ds, "funcionarios")
    DataGrid1.DataSource = ds
    DataGrid1.DataMember = "funcionarios"

End Sub

Com este código, consigo colocar os dados da base de dados na DataGrid. Só tenho um pequeno problema. No código acima, tenho o ficheiro na root da drive C: mas eu quero que ele vá buscar o ficheiro à pasta onde terei o programa instalado. Como é que faço isso? Eu já tenho o ficheiro no meu projecto.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Tiago Salgado    2
Tiago Salgado

Dim conexao As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\funcionarios.mdb"

Experimenta assim :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
zephirus    0
zephirus

Dim conexao As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & Application.StartupPath & "\funcionarios.mdb"

Experimenta assim :)

Ok, parece que funciona. Obrigado :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
zephirus    0
zephirus

Já agora, apesar de não ter muito a ver com a questão inicial, tenho outro problema.

Imagina que ao carregar num botão no meu programa, faço aparecer uma dialogbox. Eu quero que automaticamente ao ser aberta essa dialogbox, seja efectuado determiado código. Acontece que se eu colocar esse código na Form.Load, só irei ver a dialogbox após todo o código ter sido corrido. O que eu pretendo é que a Dialogbox apareca e depois então o código seja corrido de maneira a eu poder ver as alterações que esse código faz, em tempo real. Como é que faço isto?

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Tiago Salgado    2
Tiago Salgado

Deve haver aí algo que não estás a explicar direito. Numa windows application se tu chamares a dialogbox, ela é chamada e só passa para a seguinte linha de código após ser fechada.

Mostra-me o código que tu tens (e que faz o que indicaste) para eu dar uma olhadela.

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
zephirus    0
zephirus

É simples. A dialogbox é na verdade uma form que eu defini para funcionar como dialogbox.

Exemplo de código nessa form:

For i As Integer = 1 to 1000
   Label1.text = i
   progressbar.Value = i   
   System.Threading.Thread.CurrentThread.Sleep(10)
   Application.DoEvents
Next i

Como podes ver, eu quero ver o Label1 e a barra de progresso a mudarem os seus valores. A questão é que se eu colocar este código no Load da Form, não vejo essa mudança, só vejo quando o ciclo terminar. Espero ter sido mais explícito agora  :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
Tiago Salgado    2
Tiago Salgado

Pois, aí terás q usar uma thread à parte e mandares actualizar a tua thread principal para poderes ver essa actualização de estado. Explora exemplos de Multithreading que vai-te ajudar a implementar isso. Qualquer duvida avisa que tentarei (ou outra pessoa) ajudar.

Contudo, dou-te a referencia deste site (www.macoratti.net) para poderes ver algo do que te falei :)

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites
jpaulino    106
jpaulino

Boas,

O multithreading ajuda e na verdade até resolve mas podes fazer de uma forma mais simples.

  Private timer As Timer

    Private Sub RunProgress(ByVal sender As System.Object, ByVal e As System.EventArgs)
        ' Para o timer
        timer.Stop()

        ' Actualiza a progressbar/label
        For i As Integer = 1 To 1000
            Label1.Text = i
            ProgressBar.Value = i
            Threading.Thread.Sleep(10)
            Application.DoEvents()
        Next
    End Sub

    Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        ' cria o timer
        timer = New Timer
        timer.Interval = 200

        AddHandler timer.Tick, AddressOf RunProgress
        timer.Start()
    End Sub

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


×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade