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

    [c#] Lettura database Access a SQL

    Ciao a tutti,
    non so se questa è la sezione giusta e se potete aiutarmi.

    In pratica ho la necessità di aprire una connessione ad un database Access o SQL nel caso in cui una variabile si true o false.

    Il problema e che la variabile Reader non posso dichiararla OleDbDataReader o SqlDataReader perchè il tipo di database da cui leggere i dati cambia.

    Con vb.net non avevo nessun problema in quanto dichiaravo Dim Reader as Object e poi effettuavo tranquillamente la lettura sia con database Access che con SQL

    Con C# invece, devo dichiarare esplicitamente la variabile Reader.

    Come posso risolvere questo enigma??

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,463
    Tralasciando il fatto che potresti teoricamente usare object anche in C#, così come avviene in VB.NET, l'approccio corretto è utilizzare le interfacce che vengono implementate dagli oggetti per l'accesso ai dati di ADO.NET.

    Ad esempio, invece di utilizzare SqlConnection oppure OleDbConnection, il membro deve avere come tipo IDbConnection; oltre a questo, esistono altre interfacce per tutti gli oggetti comunemente utilizzati, quali IDbCommand, IDataReader e così via...

    L'indipendenza dalla base dati è comunque una problematica più ampia e complessa di questo (vi sono spesso differenze a livello di SQL e del tipo di dati utilizzato).

    Favorirei l'uso di qualche tool che possa creare un'astrazione rispetto alla base dati utilizzata, così da poter configurare l'accesso al database in modo indipendente modellando la logica dell'applicazione su classi appartenenti a un dominio slegato dal database utilizzato.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it L'avatar di albgen
    Registrato dal
    Jun 2005
    Messaggi
    3,249
    Per fare le cose fatte bene dovresti implementare il pattern factory method

    vedi anche AbstractFactory

    Se non hai voglia potresti utilizzare Microsoft Enterprise Library che sostanzialmente implementa il pattern sopracitato.
    I got the remedy

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.