Pagina 2 di 3 primaprima 1 2 3 ultimoultimo
Visualizzazione dei risultati da 11 a 20 su 24
  1. #11
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Mi ha dato lo stesso errore il compilatore. Solo che nel caso di "1" lo interpretava come int e non come bool

    [supersaibal]database.cs(25,31): error CS1502: La corrispondenza migliore del metodo di overload per 'MySQLDriverCS.MySQLCommand.ExecuteReader(System.D ata.CommandBehavior)' presenta alcuni argomenti non validi
    database.cs(25,55): error CS1503: Argomento '1': impossibile convertire da 'bool' a 'System.Data.CommandBehavior'.[/supersaibal]

  2. #12
    Ma scusa, allora quel comanda accetta il "CommandBehavior"! RIprova inserendo come parametro "System.Data.CommandBehavior.CloseConnection" o guarda le opzioni - se utilizzi Visual Studio - che vengono visualizzati.

    Ciao
    AZ [Microsoft - .NET MVP]
    Mia Home page: http://ciclismo.sitiasp.it
    Asp.Net community: http://www.aspitalia.com
    Il mio blog: http://blogs.aspitalia.com/az

  3. #13
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Ho capito il problema. Il metodo ExecuteReader non restituisce un "MySQLDriverCS.MySQLDataReader" ma un "System.Data.IDataReader" ed evidentemente i due tipi sono incompatibili

    Mi sa che mi butto su un dataadapter.

  4. #14
    Originariamente inviato da VaLvOnAuTa
    Ho capito il problema. Il metodo ExecuteReader non restituisce un "MySQLDriverCS.MySQLDataReader" ma un "System.Data.IDataReader" ed evidentemente i due tipi sono incompatibili

    Mi sa che mi butto su un dataadapter.
    System.Data.IDataReader e' l'interfaccia utilizzata da tutti i dataprovider. Ognuno poi implementa i metodi imposti da questa interfaccia a suo modo.
    Ho dato una occhiata veloce al resto dei mex in questo thread ma non credo si riesca a cavarci le zampe. Usa una datatable, vai sul sicuro e scrivi anche meno righe di codice.
    Saluti a tutti
    Riccardo

  5. #15
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    Ok mi cerco qualche spiegazione su internet.
    Non ho mai usato un datatable..
    Grazie comunque ad entrambi.

  6. #16
    A proposito di interfacce... Per il command l'interfaccia comune è "IdbCommand" che presente anche il metodo "ExecuteReader" con parametro "CommandBehavior" (qui maggiori info).

    Se implementa tale interfaccia e tale comando, e da quell'errore che hai scritto lo implementa) non vedo altro problema nel non funzionamento di quel comando come una non implementazione corretta di quel parametro.

    Ciao
    AZ [Microsoft - .NET MVP]
    Mia Home page: http://ciclismo.sitiasp.it
    Asp.Net community: http://www.aspitalia.com
    Il mio blog: http://blogs.aspitalia.com/az

  7. #17
    Originariamente inviato da AndreaZani
    ...non vedo altro problema nel non funzionamento di quel comando come una non implementazione corretta di quel parametro.
    Da quanto dici non mi e' chiara una cosa. Pensi quindi sia possibile far restituire come valore di ritorno di una funzione un datareader e leggerlo poi con il suo metodo read?
    Saluti a tutti
    Riccardo

  8. #18
    Sì, anzi, è una tecnica molto comoda. Impostando quella proprietà citata in questo thread (CommandBehavion.CloseConnection) è possibile ritornare agli strati sottostanti dell'applicazione il datareader anche se la connessione è stata aperta dalla funzione chiamata. Una volta letti i dati con il datareader è sufficiente chiudere questo per fare in modo che anche la connessione venga chiusa. Maggiori info qui:
    http://www.aspitalia.com/liste/usag/script.aspx?ID=585

    Ciao
    AZ [Microsoft - .NET MVP]
    Mia Home page: http://ciclismo.sitiasp.it
    Asp.Net community: http://www.aspitalia.com
    Il mio blog: http://blogs.aspitalia.com/az

  9. #19
    Utente di HTML.it L'avatar di VaLvOnAuTa
    Registrato dal
    Jun 2002
    Messaggi
    2,003
    codice:
    [supersaibal]using System;
    using MySQLDriverCS;
    using System.Data;
    
    namespace dbase {
     public class MySql {
       
      string uName;
      string uPass;
      string uHost;
      string uDb;
      MySQLConnection myConnection;
      DataTable myDataTable;
         
      // costruttore della classe
      public MySql(string user, pass, host, dbase) {
       uName = user;
       uPass = pass;
       uHost = host;
       uDb = dbase;         
       this.Connect();
      }
      
      // funzione che costruisce l'handler della connessione
      private Connect() {
       myConnection = new MySQLConnection("Database="+ uHost +";Data Source="+ uDb +";User Id="+ uName +";Password="+ uPass +"");
       myConnection.Open();
      }
      
      // funzione che chiude la connessione
      public Disconnect() {
       myConnection.Close();
      }
      
      // esegue la query e ne memorizza l'output in un DataTable
      public Select(string query) {
       MySQLCommand myCommand = new MySQLCommand(query, myConnection);
       myDataTable = new DataTable();
       MySQLDataAdapter myDataAdpter = new MySQLDataAdapter(myCommand);
       myAdapter.Fill(myDataTable);
      }
      
      public string getItem(string Item) {
       
      } 
       
     }
      
     
    }[/supersaibal]
    La funzione getItem dovrebbe permettermi di estrarre un singolo record (in formato stringa) dato il nome del record. Come faccio a prenderlo avendo a disposizione il datatable?.
    10x

  10. #20
    Originariamente inviato da AndreaZani
    Sì, anzi, è una tecnica molto comoda.
    Far girare per gli strati dell'applicazione il datareader mentre la connection e' aperta non mi convince anche se puo' funzionare (non ho provato). Per queste necessita', cerco sempre di ricorrere ad una datatable o una collection di oggetti custom.
    Saluti a tutti
    Riccardo

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.