Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    252

    [vb10] accesso ai dati dove è l'errore

    sembra che apra il db e legga dentro nn da errori all'avvio ma la text nn si riempie

    db.mdb
    tabella: percorso
    record id, db
    solo un record esistente



    Imports System.Data.OleDb
    Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim ConnectionString As String = "Provider=Microsoft.jet.oledb.4.0;" & "data Source=f:\pge scheda\db.mdb"
    Dim cn As OleDbConnection = New OleDbConnection(ConnectionString)
    cn.Open()

    Dim SelectString As String = "select id, db from percorso"
    Dim cmd As OleDbCommand = New OleDbCommand(SelectString, cn)
    Dim reader As OleDbDataReader = cmd.ExecuteReader()
    TextBox1.Text = reader("db").ToString()
    reader.Close()
    cn.Close()
    End Sub

  2. #2
    Ti invito, in futuro, ad usare il tag CODE per rendere più leggibile il codice.

    Una volta che ottieni un datareader, esiste una specie di cursore posizionato prima del primo record (una specie di BOF). Di conseguenza, per spostarti sul primo record devi eseguire il metodo Read, in questo modo:
    codice:
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim ConnectionString As String = "Provider=Microsoft.jet.oledb.4.0;" & "data Source=f:\pge scheda\db.mdb"
        Dim cn As OleDbConnection = New OleDbConnection(ConnectionString)
        cn.Open()
    
        Dim SelectString As String = "select id, db from percorso"
        Dim cmd As OleDbCommand = New OleDbCommand(SelectString, cn)
        Dim reader As OleDbDataReader = cmd.ExecuteReader()
        If reader.Read Then
            TextBox1.Text = reader("db").ToString()
        End If
        reader.Close()
        cn.Close()
    End Sub
    Se reader.Read restituisce False vuol dire che nessun record è stato trovato oltre la posizione corrente.
    Chi non cerca trova.

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    252
    infatti mi dice che nn trova dati ma io nel db ho messo

    id=1
    db= c:\luca\luca.mdb

    perchè nn lo trova come l'ho scritto io e invece con un if lo gestisce.

    prima avevo provato a farmi mandare un msg del reader.read e mi dava "1".

    scusa ma solo per capire altrimenti imparo a pappagallo.

    grazie

  4. #4
    Perché reader.Read sposta in avanti di un record la posizione del cursore. Inizialmente il cursore non si trova sul primo record, ma in una posizione "neutra" prima del primo record.
    Chi non cerca trova.

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    252
    ho capito. perfetto
    quindi ora per intuito se faccio una cosa del genere mi va a scrivere tutti i campi trovati

    codice:
      Do While reader.Read()
                TextBox1.Text = reader("operatore")
                TextBox2.Text = reader("id")
                reader.NextResult()
    
            Loop

  6. #6
    No, il NextResult si usa solo per passare ad un successivo blocco di dati in un "Transact-SQL batch" (vedi MSDN). Per il tuo esempio è sufficiente scrivere:
    codice:
    Do While reader.Read()
        TextBox1.Text = reader("operatore")
        TextBox2.Text = reader("id")
    Loop
    Chi non cerca trova.

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2008
    Messaggi
    252
    cavolo piu semplificato che mai,devo perdere la memoria di vb6
    recordset.movenext troppe righe

    grazie tas sei stato chiaro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.