Pagina 1 di 3 1 2 3 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 22
  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    55

    C# - Databse access e c#

    C# e tabelle Access
    ciao ragazzi... ho trovato questo interessantissimo codice...
    voglio creare un'applicazione e la cosa che non sapevo era come importare in un form di c# una tabella di access.. eccolo qua...


    codice:
    namespace prova_tesina {     public partial class Form1 : Form     {         public Form1()         {             InitializeComponent();         }          private DataSet ds;          private void form1_Load(object sender, EventArgs e)         {             ds = new DataSet() ;         }          private void button1_Click(object sender, EventArgs e)         {             OleDbConnection con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\pietro.accdb;Persist Security Info=False;");             OleDbDataAdapter da=new OleDbDataAdapter("SELECT * FROM Clientes",con);              da.Fill(ds, "Clientes");                           DataGridView.DataSource = ds.Tables["Clientes"];           }     } }
    un mio amico lo ha scritto con visual studio 2005 e ha usata alla fine una datagrid (visto che nel 2005 non c'è la datagridview) e funziona alla grande...

    a me, con il 2008, e con l'impossibilità di usare una semplice datagrid da questo errore:

    da.Fill(ds, "Clientes"); Il valore non può essere null. Nome parametro: dataSet

    come posso riadattarlo al mio visual studio 2008? ci sono possibilità di riuscirci..?
    sarebbe molto importante come partenza per il mio programmino..

    grazie!

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Non hai creato un'istanza del Dataset:

    codice:
    DataSet ds = new DataSet();
    No, c'è. certo che la leggibilità del codice che hai postato è ZERO.

    Riportalo come deve essere.
    Sbagliare è umano, perseverare è diabolico.

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    55
    hai ragione.. correggo subito..

    codice:
    namespace prova_tesina 
    {     public partial class Form1 : Form     
          {         public Form1()         
                    {             InitializeComponent();         
                    
                     }          
                     private DataSet ds;         
              private void form1_Load(object sender, EventArgs e)         
              {             ds = new DataSet() ;         
    
              }          
    
              private void button1_Click(object sender, EventArgs e)         
             {             OleDbConnection con= newOleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\pietro.accdb;Persist Security Info=False;");            
    
    
          OleDbDataAdapter da=new OleDbDataAdapter("SELECT * FROM Clientes",con); 
    
      
               da.Fill(ds, "Clientes");                           
               DataGridView1.DataSource = ds.Tables["Clientes"];           }     } }

    ecco così è meglio.. ripeto in visual studio 2005 funziona.. ma nel mio 2008 no..

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Prima di tutto in C# i percorsi su disco non si dichiarano in quel modo e la stringa di connessione corretta non è:

    codice:
    @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\pietro.accdb;Persist Security Info=False;"
    ma è:

    codice:
    "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\myAccess2007file.accdb;Persist Security Info=False;"
    Inoltre dai un'occhiata qui.
    Sbagliare è umano, perseverare è diabolico.

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    55
    niente da fare... mi da lo stesso errore cavolo..

    lo riporto precisamente...

    ArgumentNullException non è stata gestita

    Il valore non può essere null.
    Nome parametro: dataSet

  6. #6
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    L'eccezione che si solleva significa solamente che non hai creato un'istanza della classe DataSet.

    Ora, in modalità debug, inserisci un break point sull'istruzione

    codice:
      da.Fill(ds, "Clientes");
    e verifica che ds non sia Nothing.

    Poi vediamo.
    Sbagliare è umano, perseverare è diabolico.

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    55
    Originariamente inviato da Pirelli72
    L'eccezione che si solleva significa solamente che non hai creato un'istanza della classe DataSet.

    Ora, in modalità debug, inserisci un break point sull'istruzione

    codice:
      da.Fill(ds, "Clientes");
    e verifica che ds non sia Nothing.

    Poi vediamo.
    ehm.. non ho mai fatto una cosa del genere... mi puoi dare una mano..?

  8. #8
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Ti dovrei consigliare prima allora di studiare prima come funziona l'IDE di Visual Studio e la sintassi del linguaggio prima di affrontare i database.!

    Comunque un break-point è questo: (basta un click sul punto rosso, ovviamente prima che appaia)
    Immagini allegate Immagini allegate
    Sbagliare è umano, perseverare è diabolico.

  9. #9
    Utente di HTML.it
    Registrato dal
    Oct 2010
    Messaggi
    55
    mi spiegano tra due mesi queste cose a scuola.. ma non ho tutto questo tempo per aspettare.. ho in mente un progettino per gli esami e mi servirebbe far funzionare questo benedetto codice che poi mi permetterebbe di partire con la programmazione vera e propria..

    per questo non ho molte conoscenze di System.Data.OleDb;

    ho chiesto qui perchè ho dei professori che non sanno da che parte girarsi di fronte ad una domanda del genere.. siccome so che questo è un forum di persone competenti, come tu mi stai dimostrando, mi sembrava la soluzione migliore..

    l'errore è sempre quello... il codice l'avevo preso da un sito che con visual studio 2005 faceva funzionare tutto perfettamente... e purtroppo non ho capito cosa volevi farmi verificare..

    per la precisione il codice l'ho letto qua..
    http://www.youtube.com/watch?v=NWHD7dnT1nw

    se vedi alla fine funziona alla grande..

  10. #10
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    970
    Vedi tu.

    Inizia a modificare il codice iniziale in questo:

    codice:
    public partial class Form1 : Form     
          {         public Form1()         
                    {             InitializeComponent();         
                    
                     }          
                     //private DataSet ds;         
              private void form1_Load(object sender, EventArgs e)         
              {             //ds = new DataSet() ;         
    
              }          
    
              private void button1_Click(object sender, EventArgs e)         
             {             OleDbConnection con= newOleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\pietro.accdb;Persist Security Info=False;");            
    
    
          OleDbDataAdapter da=new OleDbDataAdapter("SELECT * FROM Clientes",con); 
    
               DataSet ds = new DataSet() ;         
               da.Fill(ds, "Clientes");                           
               DataGridView1.DataSource = ds.Tables["Clientes"];           }     }
    Inserisci un break-point nel punto indicato (clicca nella posizione del punto rosso e apparira il break-point) oppure ti posizione sulla linea, fai apparire il cursore che lampeggia>pulsante destro>Breakpoint>iInsert (a memoria). Dopo di che Menu in alto>Debug>Start debugging, quando la linea si seleziona di giallo vai col mouse su ds e dovrebbe apparirti il valore di ds.
    Sbagliare è umano, perseverare è diabolico.

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.