Problem z DataGridView

0
for (int i = 0; i < dataGridView1.Rows.Count; i++)
                {

                    try
                    {
                        string url = this.dataGridView1.Rows[i].Cells[0].Value.ToString();
                        string slowo = this.dataGridView1.Rows[i].Cells[6].Value.ToString();
                        
                        linki += "<a href\"=" + url + "\" title=\"" + slowo + "\">" + slowo + "</a>\n";
                    }
                    catch (Exception)
                    {
                        
                        
                    }
                    
                     
                }

Wie ktoś może dlaczego to nie dziala??
Znaczy działa ale nie pobiera ostatniej wartości, a właściwie ostatniej z przed ostatniego wiersza.
Bez traya wywala wyjątek ze instancji nie ma row[i].cell[6].

0

na pewno masz 7 kolumn ?

(z tak krotkiego fragmentu chyba nie wiele wiecej da sie wywnioskować)

0

Poza upewnieniem się czy faktycznie w gridzie jest 7 kolumn, napisz skąd pochodzą dane wyświetlane w kontrolce? Czy do grida podpięty jest jakiś DataSource? Jeżeli tak to co to jest dokładnie? DataTable?

0

Dane wpisuje ręcznie. Potem będą importowane z pliku tekstowego ale pÓÓÓÓki co w ramach testów sam je wpisuje, i jestem pewien ze wpisałem wartość w to pole.

0

A czy niezależnie od wpisanych danych problem zawsze dotyczy tego samego wiersza i kolumny?

Jeżeli tak to ustal, którego wiersza i której kolumny dotyczy problem. Następnie utwórz Buttona i w zdarzeniu Click wpisz (w miejsce x i y wpisując współrzędne komórki, przy której występuje błąd):

MessageBox.Show(dataGridView1.Rows[x].Cells[y].Value.ToString());

I jaki jest wynik? Jeżeli wystąpił wyjątek, wklej jego komunikat i najlepiej zrób też screena z wartościami wpisanymi do grida.

0

Co znaczy tej samej?? licząc od góry to różnej ale licząc od dołu to zawsze tej samej. Ostatniej wartości którą wpisałem nie ma. Zawsze przed ostatni wiersz ostania kolumna. Ostatni wiersz jest zawsze pusty.

Podaje screeny problem jest z 6 czyli ostatnią kolumna w 3 wierszu
http://zapodaj.net/899535.jpg.html
http://s4.zapodaj.net/14523194.jpg.html

0

hmm. A jakie zdarzenie wywołuje tą pętle ?

0

No więc podczas wykonywania odczytu danych z grida ostatnia wpisana wartość nie jest jeszcze zatwierdzona. Napisz kiedy (w jakim zdarzeniu) odczytujesz wartości? Tutaj właśnie jest problem.

Na próbę podepnij tą pętlę odczytującą dane pod zdarzenie Click buttona i wszystko powinno być ok. po prostu odczytujesz dane kiedy ostatnia wartość nie jest jeszcze zatwierdzona.

0

funkcja wywoływana jest po kliknięciu w d opcje z menu u góry a wiec prawie jak butoon. Dodam jeszcze ze jest to jedyna część kody jak na razie oczywiście. Dziwne jest też ze en ostatni wiersz znika mimo tego że wartość z pierwszej kolumny ostatniego wiersza odczytuje bez problemu.

0

Próbowałeś tak jak pisałem z oddzielnym Buttonem?
Druga sprawa to po wpisaniu ostatniej wartości kliknij na gridzie w inny wiersz i dopiero potem wywołaj pętle. Zobacz czy to coś da.

0

heh pomogło z buttonem :) dzięki za pomoc.
Ciekawe tylko co to za różnica czy klikam na button czy wybieram z menu. Trochę mi ten button tu przeszkadza ale nic ważne ze działa :)

0

Chodziło mi właśnie o sprawdzenie czy z Buttonem będzie dobrze.
Jeżeli chcesz powrócić do opcji wybieranej z menu wystarczy bezpośrednio przed pętlą odczytującą dane dodać:

dataGridView1.EndEdit();

Dzięki temu dane w gridzie zostaną zatwierdzone i bez problemu dadzą się odczytać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1