Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [VB.NET]datareader che si svuota dopo binding con sorgente.

    Salve a tutti, è da un bel po che non scrivo su questo forum che pure mi ha insegnato molto...

    Ho un problema utilizzando la proprietà HasRows di un datareader che si comporta diversamente secondo il database (o il provider dati) che utilizzo.

    Premetto che utilizzo una struttura con Provider Factory per creare gli oggetti di connessione su un gestionale che sfrutta 4 database diversi, in modo da scrivere un solo codice che si adatti a tutti i database variando solamente il provider di connessione e la connectionstring.

    La struttura lavora da 4 anni con Access, MySQL, e PostgreSQL senza problemi, sfruttando rispettivamente OleDB, MySQL Connector .NET, ODBC per Postgresql (nativo ed installato a parte).

    Ora...volendo passare tutto a connector .NET, ho installato npgsql, un provider .NET per Postgresql.

    Tutto funziona alla grande ma ho problemi con l'istruzione HasRows di un datareader in alcune condizioni....

    Metto un piccolo codice per spiegare dove sta il problema.

    'Richiamo una estrazione di dati...
    Call EstraiDati(Me, SorgenteSettori, DataGridViewSettori, "SELECT * FROM Settori")

    If Dati.HasRows Then
    Call ImpostaColonneSettori()
    Call BindingTabellaSettori()
    End If

    Premettendo che DATI è un datareader dichiarato come Public e quindi visibile ovunque, nella parte dove controllo Dati.HasRows ottengo FALSE qualora nella procedura chiamata (in questo caso EstraiDati) io abbia associato il datareader ad un oggetto BindingSource....se invece verifico prima dell'associazione mi restituisce correttamente TRUE se i dati sono presenti...

    Questo comportamento avviene solo sulla libreria NPGSQL e quella di SQLite (entrambe .NET), mentre non accade usando MySQL Connector, che pure è una libreria .NET, dove anche successivamente ad un binding del datareader, la proprietà HasRows si ricorda che aveva dati al suo interno...

    Mi chiedo come mai e cosa posso fare per aggirare l'ostacolo dato che il controllo sulla proprietà HasRows è usato massicciamente nel mio gestionale...

    Grazie a chi vorrà dedicarmi un po del suo tempo.
    visitate www.pcprimipassi.it, il portale italiano per i neofiti del computer

    "Tanto prima o poi ti buco...." disse il baco alla noce!

  2. #2
    Nessuna idea ? Vi prego, ho bisogno di correggere questo problema altrimenti sono bloccato con un lavoro importante...
    visitate www.pcprimipassi.it, il portale italiano per i neofiti del computer

    "Tanto prima o poi ti buco...." disse il baco alla noce!

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.