Probabilmente il reader ha la proprietā GetString che non ha elementi e quindi va in errore. Devi controllare prima di assegnare il getString(0) che la lunghezza dell'array sia maggiore di zero.Originariamente inviato da Nik_1990
Ciao a tutti, sono alle mie prime esperienze con i database.. volevo sapere una cosa.. avrei bisogno nel visualizzare un messaggio di errore nel caso in cui il record nel database non fosse trovato.. questa č la funzione che si occupa di trovare nel database e di ritornare una stringa:
La questione č che se io tento di trovare un valore che nel database non esiste il programma mi va in crash.. precisamente al punto:codice:public string trova_in_database(string comando) { // String connect = "Provider=Microsoft.JET.OLEDB.4.0;data source=C:\\db\\Comandi.mdb"; String connect = "Provider=Microsoft.JET.OLEDB.4.0;data source=Comandi.mdb"; OleDbConnection con = new OleDbConnection(connect); con.Open(); OleDbCommand cmd1 = con.CreateCommand(); int id = Convert.ToInt16(comando); cmd1.CommandText = "SELECT TOP 1 comando FROM Operazioni WHERE operazione = ?"; OleDbParameter p1 = new OleDbParameter(); cmd1.Parameters.Add(p1); p1.Value = id; OleDbDataReader reader = cmd1.ExecuteReader(); reader.Read(); MessageBox.Show("sono qui"); string operazione = reader.GetString(0); //FINE... return operazione }
e mi dice appunto che system.invalidoperationexception non č stata gestita.. ho provato con IF NOT EXIST nella query ma non č quello che voglio perchč mi seleziona l'ultima disponibile.. io invece vorrei un messaggio di errore.. grazie mille a tutti!!codice:string operazione = reader.GetString(0);