As clarified per comments, the goal is to have each subsequent button-click select and display the next record.
So basically what you want is so called "Paging" but just with 1 record. With your LIMIT-clause you have one neccessary part for paging but you need another part in order to not select the first record each time: You need to read the ID of the record, store it in a variable outside of your select-method so that its value is being retained (until you potentially reset it with another button) and include it into your query with a WHERE-clause:
int lastID = -1;
private void select()
{
using (Conexiune.getConnection())
{
string select = String.Format("SELECT DISTINCT * FROM questions WHERE id > {0} ORDER BY id ASC LIMIT 1", lastID);
SQLiteCommand cmd = new SQLiteCommand(select, Conexiune.getConnection());
cmd.CommandType = CommandType.Text;
SQLiteDataReader rdra = cmd.ExecuteReader(CommandBehavior.CloseConnection);
try
{
while (rdra.Read())
{
textBox1.Text = rdra["question"].ToString();
textBox2.Text = rdra["answer1"].ToString();
textBox3.Text = rdra["answer2"].ToString();
textBox4.Text = rdra["answer3"].ToString();
r1 = (int)rdra["option1"];
r2 = (int)rdra["option2"];
r3 = (int)rdra["option3"];
lastID = (int)rdra["id"];
SimulatorManager.Intrebare = textBox1.Text;
}
}
catch (InvalidOperationException ex)
{
MessageBox.Show(ex.Message);
}
}
}
Please note: The way I built the query-string is a bit quick&dirty and I don't recommend doing it like this (instead it should be done with an SQL-Parameter). Please take a look at an answer to another question where I show an exemplary good-practice database-access:
how to loop sql server table to create a datagridview - sql table field matches csv field[
^] (It's targeted at SQL-Server, for SQLite you would have to change how an SQL-Parameter is represented in a query-string but ad-hoc I don't know that myself, please google it if you don't know either.)