Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    17

    C# , database Access e condizione WHERE in variabile;

    Ciao a tutti! E' il mio primo messaggio qui sul forum e spero di ricevere aiuto!
    Premetto che sono nuovo nei database e per il tipo di applicazione che sto facendo.
    Vi spiego subito.

    Sono alle prese con una piccola applicazione in C# che deve collegarsi ad un database in access.
    Fin qui nessun problema, riesco senza problemi ad effettuare la connessione al database.
    Quello che mi serve ora è che nella query che faccio la condizione WHERE venga presa da una variabile.

    Ho provato in questo modo:

    codice:
    String connect = "Provider=Microsoft.JET.OLEDB.4.0;data source=C:\\db\\Comandi.mdb";      		
    OleDbConnection con = new OleDbConnection(connect);    con.Open();   			 			 			
    OleDbCommand cmd1 = con.CreateCommand();  
    cmd1.CommandText = "SELECT TOP 1 comando FROM Operazioni WHERE operazione = ?";   			 			 			 	 
    OleDbParameter p1 = new OleDbParameter(); 
    cmd1.Parameters.Add(p1);
    p1.Value =  "1000";  
    OleDbDataReader reader = cmd1.ExecuteReader();		 			 			 			 
    reader.Read();  
    string messaggio = reader.GetString(0);  
    MessageBox.Show(messaggio);
    Facendo in questo modo effettivamente WHERE operazione prende il valore 1000, se io cambio quel valore si prende il valore cambiato, ma se io provo
    a dare a dare a p1.Value un'altra stringa, ad esempio:
    codice:
    string valore = "1000";
    
    p1.Value = valore;
    l'applicazione non procede con l'esecuzione e mi crasha e come se non riuscisse a vedere appunto il value come stringa variabile..

    Dove sbaglio?!?

    Grazie mille a tutti in anticipo!!

  2. #2
    Ciao,

    è evidente che il problema dipende dal codice C# e non dalla query, tanto che hai postato il 99% del codice C# e che la riga in cui da eccezione è relativa al C# e non all'SQL.

    Sposto nella sezione corretta.

    Gentilmente maggiore attenzione!

    Grazie
    The fastest Redis alternative ... cachegrand! https://github.com/danielealbano/cachegrand

  3. #3
    Utente di HTML.it L'avatar di oregon
    Registrato dal
    Jul 2005
    residenza
    Roma
    Messaggi
    36,480
    Ma il parametro è di tipo stringa o è numerico? Dalla query sembra numerico ...

    E "crasha" in che senso? Hai un messaggio d'errore? Quale?
    No MP tecnici (non rispondo nemmeno!), usa il forum.

  4. #4
    Utente di HTML.it
    Registrato dal
    Mar 2012
    Messaggi
    17
    Originariamente inviato da oregon
    Ma il parametro è di tipo stringa o è numerico? Dalla query sembra numerico ...

    E "crasha" in che senso? Hai un messaggio d'errore? Quale?
    Il parametro è di tipo stringa, è un numero ma viene mandato come stringa..

    Il messaggio che ricevo è questo:

    codice:
    System.InvalidOperationException: No data exists for the row/column. at System.Data.OleDb.OleDbDataReader.DoValueCheck(Int32 ordinal) at System.Data.OleDb.OleDbDataReader.GetString(Int32 ordinal) at Serial_Arduino_LED.MainForm.DataReceviedHandler(Object sender, SerialDataReceivedEventArgs e) in c:\Users\Administrator\Desktop\AUT_BOX_PROJECT - Copia_mysql\Serial_Arduino_LED\Serial_Arduino_LED\MainForm.cs:line 289 at System.IO.Ports.SerialPort.CatchReceivedEvents(Object src, SerialDataReceivedEventArgs e) at System.IO.Ports.SerialStream.EventLoopRunner.CallReceiveEvents(Object state) at System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx) at System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() at System.Threading.ThreadPoolWorkQueue.Dispatch() at System.Threading._ThreadPoolWaitCallback.PerformWaitCallback()
    Grazie

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.