Mam dwie tabele (faktury , fakturypozycje) połączone relacją (jeden do wielu) w oparciu o pole NrFaktury. Po zakończeniu wprowadzania nowych pozycji dla faktury (DataGridView) chciałem wprowadzić do wszystkich wierszy dla określonej kolumny, numer faktury (typu string).
Niestety, nie do końca jest to możliwe :(
Po wykonaniu poniższego kodu, wszystkie komórki w kolumnie powinny przyjąć wartość zapisaną w zmiennej NrFaktury, tymczasem tylko pierwszy wiersz przyjmuje tą wartość. Pozostałe wiersze pozostają niezmienione.
private void buttonZapisz_Click(object sender, EventArgs e)
{
string nrFaktur = "00001";
foreach (DataGridViewRow dvr in this.fakturypozycjeDataGridView.Rows)
{
dvr.Cells[0].Value = nrFaktury;
}
this.Validate();
this.fakturyBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.dataSetFaktury);
}
Czy coś robię nie tak ?
A teraz działanie które nie powinno niczego zmienić : wprowadzenie kolejnej pętli powoduje, że po jej wykonaniu już dwa pierwsze wiersze przyjmują prawidłową wartość.
private void buttonZapisz_Click(object sender, EventArgs e)
{
string nrFaktur = "00001";
foreach (DataGridViewRow dvr in this.fakturypozycjeDataGridView.Rows)
{
dvr.Cells[0].Value = nrFaktury;
}
for (int i = 0; i < this.fakturypozycjeDataGridView.RowCount; i++)
{
this.fakturypozycjeDataGridView.Rows[i].Cells[0].Value = NrFaktury;
}
this.Validate();
this.fakturyBindingSource.EndEdit();
this.tableAdapterManager.UpdateAll(this.dataSetFaktury);
}
Gdzie popełniam błąd ?