Proponowałbym znaleźć kontrolkę z zaznaczeniem i na podstawie jej nazwy przygotować kwerendę:
RadioButton? selectedRadioButton = Controls.OfType<RadioButton>()
.Where(control => control.Checked)
.FirstOrDefault();
if (selectedRadioButton == null)
{
// obsługa przypadku niezaznaczonej żadnej kontrolki
}
string queryString = selectedRadioButton.Name switch
{
"radioButton1" => "SELECT * FROM `tabela1`",
"radioButton2" => "SELECT * FROM `tabela2`",
"radioButton3" => "SELECT * FROM `tabela3`"
};
Ewentualnie, jeżeli liczba porządkowa w nazwie kontrolki odpowiada nazwie tabeli, etap wybierania kwerendy mógłby zostać zamieniony z wykorzystaniem prostej obróbki tekstu:
var orderValue = Convert.ToInt32(selectedRadioButton.Name.Substring(11));
var queryString = $"SELECT * FROM `tabela{orderValue}`";
Należy zauważyć, że jeżeli liczby w nazwach kontrolek nie wychodzą poza zakres 1-9, pobranie wartości liczby można uprościć przy użyciu LINQ (dziękuję za sugestię VBService):
var orderValue = selectedRadioButton.Name.LastOrDefault();
Ewentualnie z użyciem wyrażenia regularnego:
var controlNameRegex = new Regex(@"^radioButton(\d+)$");
var orderValue = Convert.ToInt32(controlNameRegex.Match(selectedRadioButton.Name).Groups[1].Value);
var queryString = $"SELECT * FROM `tabela{orderValue}`";
Ewentualnie, przy użyciu LINQ:
var orderValue = Convert.ToInt32(new String(selectedRadioButton.Name.Where(char.IsDigit).ToArray()));
var queryString = $"SELECT * FROM `tabela{orderValue}`";
EDIT #1: Drobne techniczne.
EDIT #2: Dodano kolejne opcjonalne rozwiązanie za sugestią VBService, drobne redakcyjne.