You have a considerable amount to learn about using ADO.NET and database design in general it seems.
In your code you are only getting one record because that is all you are asking for. You only call Read once.
using(SqlConnection conn = new SqlConnection(...))
{
using(SqlCommand cmdQ = new SqlCommand("...", conn))
using(SqlCommand cmdA = new SqlCommand("...", conn))
{
SqlDataReader readerQ = cmdQ.ExecuteReader();
while(readerQ.Read())
{
....
}
}
}
You should never use * in a select statement as it does not give SQL Server query engine a change to optimize the query and return stream. It also does not document your code at all. How will someone else know, or you remember in the future, what is being returned?
There should also be a parent/child relationship between the questions and answers. Then using
DataRelation[
^] you can query a DataSet for related records.