Jeśli odczytuję(w programie w c#) jakieś wartości dla danego wiersza, dla kolumny o nazwie np.: "Data"(typ datetime) to wszytsko jest ok.
Gdy chcę odczytać wartość dla kolumny o nazwie np: [2/10/2014] nie udaje mi się tego zrobić. Po prostu w datagrid po wyświetleniu rekordów ta kolumna jest cała pusta, a pozostałe, o nazwach nie zawartych w nawiasach klamrowych, jest wypełniona odpowiednimi wartościami dla danego wiersza.
Jak można w takim razie odczytać wartość takiej kolumny?
Pomieszałeś. Chcesz tylko zmienić label kolumny, a zapewne zmieniasz jednocześnie nazwę pola w źródle danych. Pokaż trochę kodu.
PS: Nie bawiłem się za bardzo datagrid więc nie pomogę z pamięci
EDIT
Zobacz czy pomogą Ci odpowiedzi na te pytania:
http://stackoverflow.com/questions/1036948/how-to-set-column-header-text-for-specific-column-in-datagridview-c-sharp
http://stackoverflow.com/questions/13579034/how-do-you-rename-datagrid-columns-when-autogeneratecolumns-true
Nic nie pomieszałem, nie chcę nic zmieniać, chcę po prostu cała tabelę odczytać i wyświetlić ją w datagrid.
Kod:
List<string> nm = new List<string>();
var dzienna = ConfigurationManager.ConnectionStrings["Dzienna"].ConnectionString;
SqlConnection dz = new SqlConnection(dzienna);
SqlCommand d = new SqlCommand();
d.Connection = dz;
dz.Open();
d.CommandText = "Select *FROM GODZINY";
var dre = d.ExecuteReader();
if (dre.HasRows)
{
while (dre.Read())
{
nm.Add(dre[0].ToString());
}
}
string kt = "";
var kl = 0;
foreach (var item in nm)
{
if (kl == 0) { kt = Convert.ToString(item); kl = 1; }
else { kt = kt + "," + Convert.ToString(item); }
}
// MessageBox.Show(kt);
DataTable dataTable = Msql.GetDataTable("select*from Godziny where id in(" + kt + ")");
SqlDataAdapter da = new SqlDataAdapter();
bazunia.ItemsSource = dataTable.DefaultView;
I teraz jeśli mam kolumnę o nazwie: "Data" elegeancko w dataghrid do każdego wiersza wyśietla mi wartośc. Natomiast mam kolumnę "[2/10/2014]" i już tutaj nie pobiera wartości(chociaż jest ona zapisana) i wyświetla puste pole w datagrid.
Nie masz kolumny [2/10/2014], tylko 2/10/2014 (prawdopodobnie). Ale ujętą w tzw QUOTENAME. I tak próbuj.
A potem zastrzel tego, co tak nazwał kolumnę.
jak można nazwać kolumnę [2/10/2014]
???? Toż to trzeba być chorym umysłowo człowiekiem. A dlaczego tak się nie robi to Twoje pytanie jest odpowiedzią.
Podaj DDL tej tabeli.
BTW jedyne wyjście jakie widzę to zamiast SELECT * FROM
wyszczególnić wszystkie kolumny ze zmianą nazwy tej "cudownej" na jakąś normalną
Zmiana nazwy kolumny pomogła rozwiązać problem.
Czy Ty tworzyłeś tą tabelę? Jeżeli masz jedną kolumnę na każdy dzień, to zrobiłeś to źle. No chyba, że liczba dni jakie mogą się pojawić jest skończona ;)