Witam,
Na wstępie chce zaznaczyć, że jeśli chodzi o język c# jestem w pełni samoukiem i moje "programowanie" wygląda raczej jak składnie puzzli znalezionych w Internecie. Ale robię to już od jakiegoś czasu i mam za sobą kilka aplikacji z wykorzystaniem Windows form.
Więc tak, do mapowania połączenia z bazą SQL używam LINQ. Pobieram sobie nazwy kolumn i chciałbym zrobić mniej więcej coś takiego, że użytkownik wybiera sobie w check list box, które kolumny mają zostać pobrane do data grid wiew. Jednak aby to zrobić muszę wykorzystać nazwę zapisaną w string i tutaj pojawia się problem, ponieważ nie mogę nigdzie znaleźć rozwiązania.
Dla przykładu teraz robię to tak:
{
var wpisy = from wpisy_ in baza.LICZNIKI
where wpisy_.DATA >= dateTimePicker1.Value
&& wpisy_.DATA <= dateTimePicker2.Value
orderby wpisy_.DATA descending
select wpisy_;
foreach (var wpis in wpisy)
{ ....
if (i == "test")
{
dataGridView2.Rows[o].Cells[i].Value = wpis.test;
o = o + 1;
} ...}
W tym przypadku string z check list box znajduję się w zmiennej "i" i to działa prawidłowo. Jednak chciałbym ten kod "zautomatyzować" aby stał się bardziej dynamiczny tzn. aby nie musieć pisać osobnego if dla każdej kolumny. Do tego muszę wiedzieć czy da się pobrać dane w jakiś inny sposób niż "wpis.test" (zamiast takiego odwołania wykorzystać zmienną i).
Drugim problemem jest czy da się w sposób dynamiczny mapować dane w linq teraz robię to przez okno graficzne .bdml, a chciałbym by w przypadku ręcznego dodania nowej kolumny np. przez SSMS program automatycznie ją znajdował. Tak abym nie musiał przerabiać każdorazowo mapowania linq. Potrzebuję czegoś co da mi dostęp do wszystkich danych w bazie (ew. jakiegokolwiek punktu zaczepienia jak to zrobić).