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

Furriel

[vb.net 2003] Seleccionar dados da base de dados

5 mensagens neste tópico

Olá a todos,

Estou a fazer uma aplicação que tem que ao load do form preencher as textboxs.

Infelizmente não está a dar e apenas aparecem zeros nas textboxs...

Para isso estou a usar o seguinte código:

Para a ligação:

    Dim caminho As String = Application.StartupPath.ToString & "\NOTAS.mdb"
    Dim ConnectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;password=;User ID=Admin;Data Source=" & caminho & ""
    Dim Conn As OleDbConnection = New OleDbConnection(ConnectionString)
    Dim com As New OleDb.OleDbCommand

Para a inserção:

     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim nota As Integer
        Dim j As Integer = 1
        Conn.Open()
        For Each ctrl As Control In Me.Panel1.Controls
            If TypeOf ctrl Is TextBox Then
                com.Connection = Conn
                com.CommandType = CommandType.Text
                nota = com.CommandText = "SELECT N_NOTA FROM NOTAS where N_NUM = '" & j & "'"
                CType(ctrl, TextBox).Text = nota
                j = j + 1
            End If
        Next
        Conn.Close()

        Dim nota2 As Integer
        Dim k As Integer = 1
        Conn.Open()
        For Each ctrl As Control In Me.Panel2.Controls
            If TypeOf ctrl Is TextBox Then
                com.Connection = Conn
                com.CommandType = CommandType.Text
                nota2 = com.CommandText = "SELECT N2_NOTA FROM NOTAS_2 where N2_NUM = '" & k & "'"
                CType(ctrl, TextBox).Text = nota2
                k = k + 1
            End If
        Next
        Conn.Close()

        Me.MenuItem5.Enabled = True
        Me.pic_Gravar.Enabled = True

        Me.MenuItem5.Enabled = True
        Me.PictureBox1.Enabled = True

        For Each ctrl As Control In Me.Panel1.Controls
            If TypeOf ctrl Is TextBox Then
                AddHandler ctrl.LostFocus, AddressOf TextBoxLostFocus
            End If
        Next

        For Each ctrl As Control In Me.Panel2.Controls
            If TypeOf ctrl Is TextBox Then
                AddHandler ctrl.LostFocus, AddressOf TextBoxLostFocus
            End If
        Next

    End Sub

Agradeço desde já a ajuda.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Experimenta alterar o código

nota = com.CommandText = "SELECT N_NOTA FROM NOTAS where N_NUM = '" & j & "'"

por

com.CommandText = "SELECT N_NOTA FROM NOTAS where N_NUM = '" & j & "'"
nota = com.ExecuteScalar()

E também na nota2 faz o mesmo.

Mas olha lá, isso vai-te fazer ligações à BD que são completamente desnecessárias. Em vez de fazeres 1 a 1, mais vale carregares os dados que pretendes todos de uma vez num dataset, e depois trabalhas os dados offline, sem tares a fazer ligações constantes à bd.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Experimenta alterar o código

nota = com.CommandText = "SELECT N_NOTA FROM NOTAS where N_NUM = '" & j & "'"

por

com.CommandText = "SELECT N_NOTA FROM NOTAS where N_NUM = '" & j & "'"
nota = com.ExecuteScalar()

E também na nota2 faz o mesmo.

Mas olha lá, isso vai-te fazer ligações à BD que são completamente desnecessárias. Em vez de fazeres 1 a 1, mais vale carregares os dados que pretendes todos de uma vez num dataset, e depois trabalhas os dados offline, sem tares a fazer ligações constantes à bd.

Olá,

Fiz a alteração que disseste mas dá erro: An unhandled exception of type 'System.Data.OleDbException' occurred in System.data.dll

Quanto aos DataSets estive a ler no ebook "Teach Yourself Microsoft Visual Basic.NET 2003 in 21 Days" mas ainda não percebi muito bem como os criar, vou ter que ler com mais atenção

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Estive a tentar mas não consegui perceber como criar o DataSet nem os DataAdapter.

Será que alguém me podia dizer como é que se faz?

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Poe um Try ... Catch para ter uma descrição mais esclarecedora do erro.

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