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!!