/ / Jak przechowywać wszystkie dzieci z StackPanel na liście? - c #, mysql, wpf

Jak przechowywać wszystkie dzieci z StackPanel na liście? - c #, mysql, wpf

Mam 6 etykiet i 6 obiektów (1 Datepicker, 2 comboboxes i 3 textboxes). Nazwy etykiet to nazwy kolumn z bazy danych mysql. A zawartość obiektów to wartości tego.

Jeśli kliknę "Zapisz", chcę zapisać wartości w bazie danych.

Co znalazłem (ale nie działa, ponieważ nie mam takiej samej liczby pól tekstowych jak etykiety):

string query = "INSERT INTO "+ privateCustomerTablename +" (";
for (int i = 0; i < textboxes.Count; i++)
{
var column = labels[i];
if (i < textboxes.Count - 1)
query += column.Name + ",";
else
query += column.Name;
}
query += ") VALUES (";
for (int i = 0; i < textboxes.Count; i++)
{
var value = textboxes[i];
if (i < textboxes.Count - 1)
query += """ + value.Text + "",";
else
query += """ + value.Text + "")";
}

Tak więc chciałem przechowywać wszystkie dzieci z Stackpanel (mam 2 Stackpanele, 1 dla etykiet i 1 dla obiektów), aby zmienić textboxes.Count w liczbie obiektów.

Ale w jaki sposób mogę przechowywać dzieci z Stackpanelu z różnymi obiektami na liście, aby to zrobić?

Odpowiedzi:

1 dla odpowiedzi № 1

Ale w jaki sposób mogę przechowywać dzieci z Stackpanelu z różnymi obiektami na liście, aby to zrobić?

Możesz przechowywać wszystkie dzieci w jednym List<UIElement>:

List<UIElement> allElements = stackPanel1.Children.OfType<UIElement>().ToList();

Lub możesz przechowywać elementy konkretnego na specjalistycznej liście, np .:

List<TextBox> allTextBoxesInTheStackPanel = stackPanel1.Children.OfType<TextBox>().ToList();

Czy to odpowiada na twoje pytanie?

Jeśli chodzi o część SQL, zawsze powinieneś preferować używanie parametrów:

Dlaczego zawsze wolimy używać parametrów w instrukcjach SQL?