Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    162

    [Visual C#2005]Prelevare valore da una query

    Salve, ho un problema con un ritorno di una query;

    Mi spiego meglio:

    io faccio così:

    public string turno(string turno){
    string id;
    string conn="Provider=Microsoft.Jet.Oledb.4.0......"(il database è in access);
    OledbConnection con=new OledbConnection(Conn);
    OledbCommand cm=new OledbCommand();
    OledbDataReader dt;
    cm.CommandText="SELECT id_Turno FROM Turni WHERE Turno="+turno;
    cm.Connection=con;
    con.Open();
    dt=cm.ExecuteReader();(qui mi fa l'eerore e mi dice che civogliono altri parametri obbligatori);
    id=dt["id_Turno"].ToString();
    return id;
    }
    Posso sapere dove sbaglio ?

    Anche perchè sto iniziando ora a programmare in C#

  2. #2
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Il problema dovrebbe essere in

    ... WHERE Turno="+turno;

    e potrebbe essere la mancanza degli apici dato che il campo e' una stringa, ovvero

    ... WHERE Turno='" + turno + "'";

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    162
    Ho provato e adesso non mi da più errore li, era come dicevi tu, ma mi da errore nella riga dopo

    id=dt["id_turno"].ToString();

    mi dice che nessun dato esistente per la riga/colonna

    però dentro il database i valori ci sono.

    Ti sarei molto grato se mi puoi dare questa ennesimo aiuto.

    Grazie ancora!

  4. #4
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Hai fatto una ricerca con una condizione ... probabilmente nessun record rispetta la condizione.

    Controlla cosa passi nella stringa

    turno

    e se effettivamente esistono dei record che rispettano la condizione.

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    162
    Ho fatto tutti i controlli possibili e immaginabili.
    Anche perchè prima di questa query ne faccio un'altra dove inserisco la voce "Turno1",quindi faccio una insert e poi faccio la query con la condizione.

    Cmq proverò più tardi con più calma e ci sbatterò la testa.

    Grazie cmq del tuo preziossisimo aiuto.

    al prossimo guaio

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Si usano i valori parametrici per effettuare le query (vedi MSDN per la classe OleDbParameter, in questo caso); probabilmente hai specificato il valore del campo, di tipo stringa, senza gli apici, ma con l'uso dei "segnaposto" fruibili con i valori parametrici queste problematiche non devono essere gestite.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

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.