@ Optime
Il mio obiettivo finale è di leggere una specifica riga della tabella il cui indice è contenuto in una variabile integer, Quindi:
codice:
Do While reader.Read()
      Matr.Text = reader.GetString(variabile).ToString
Loop
Siccome non funge (l'errore è: "Indice oltre i limiti della matrice."), ho provato a sostituire a questa variabile dei valori numerici e ho constatato che ponendola a 0 fornisce come risultato il primo elemento della tabella, con tutte le altre cifre dà lo stesso errore "Indice oltre i limiti della matrice.". Presumo che sbaglio il loop, ma non riesco a capire il motivo nonostante mille ricerche tra le varie guide e forum (preciso che non sono preparatissima in merito, forse è il motivo principale e perciò chiedo aiuto a voi!).

@ Gibra
Avevo già tentato di sostituire GetString() con GetValue() ma la situazione non cambia.
Ho letto la discussione che mi hai linkato, ma soluzioni pratiche non ne vedo.
Da ciò che c'è scritto e da quello che mi hai detto tu a proposito della User Instance deduco che mi suggerisci di cambiare stringa di connessione, giusto? Per tutte le operazioni della mia applicazione, semplici o complesse, ho usato quella e non mi ha mai dato problemi, o per lo meno gli incovenienti sono sempre riuscita ad ovviarli.