Fehler in dataGrid

Hallo zusammen,

ich nutze VS mit c#.

Nach der Änderung (einfügen neuer Zeilen) einer Tabelle wird beim ersten Klick in das datagrid folgende Meldung ausgegeben:

Fehler beim durchführen des commits der zeile im ursprünglichen datenspeicher.

Dazu ein Kommentar mit dem Hinweis, das eine Arraygrenze überschritten wurde.

Der Debugger schweigt dazu und auch per Try/ Catch konnte ich den Fehler nicht eingrenzen.

Hat jemeand eine Idee? Kann man diese Exception selber abfangen?

nach einem Tag Google hab ich echt die …

Vielen Dank Für jede Hilfe!

mfg

Dirk.Pegasus

Hi Dirk,

hm,. so ganz ohne Code kann ich Dir nicht helfen. Am besten man schaut sich sowas an… Kannst Du Dein Code schicken?

bye
Markus

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hallo Markus,

wird wohl besser sein, mach ich Morgen. Ich wollte nur nicht einfach allen Code posten!

Dank erstmal.

Dirk.Pegasus

Code Auszug!
Hallo zusammen,

ich wollte euch ja nicht mit Code zuwerfen, aber hier der mE relevante Auszug.

changeView() setzt die Form nach Änderungen zurück. Insbesondere wird eine comboBox auf die erste Spalte der aktiven Zeile gelegt.

Der Code läuft so komplett durch und alle eingefügten Zeilen (insertCopiedLines(…) der Parameter enstcheidet nur, ob vor oder hinter der aktiven Zeile eingefügt werden soll) werden auch angezeigt. Sobald ich in eine der neuen Zellen clicke folgt die indexOutOfRange Meldung. Beantworte ich die mit Nein läuft alles wie geschmiert weiter.

private void changeView()
 {
 DataRow currentChild;
 if (bindingManager.Position != -1)
 {
 DataRow dr = ((System.Data.DataRowView)bindingManager.Current).Row;
 string id = dr["id"].ToString();
 currentChild = xmlTable.Rows.Find(id);
 if (currentChild != null)
 {
 firstContent.Text = currentChild["content"].ToString();
 type.Text = currentChild["type"].ToString();
 }
 }
 Rectangle rec = new Rectangle();
 //lov auf das Grid legen!
 type.Visible = true;
 if (xmlGrid.CurrentRowIndex != -1)
 {
 rec = xmlGrid.GetCellBounds(xmlGrid.CurrentRowIndex, 1);

 type.Left = rec.Left + xmlGrid.Left;
 type.Top = rec.Top + xmlGrid.Top;
 type.Height = rec.Height;
 type.Width = rec.Width;
 type.BringToFront();

 if (
 type.Top xmlGrid.Left + xmlGrid.Width - type.Width - 12
 || type.Left xmlGrid.Top + xmlGrid.Height - type.Height + 2
 )
 type.Visible = false;
 }
 else
 type.Visible = false;
 xmlGrid.Refresh();
 }
private void insertCopiedLines(bool afterThisLine)
 {
 int n = xmlGrid.CurrentRowIndex;
 xmlTable.AcceptChanges();
 if (afterThisLine)
 n = n + 1;
 if (n != -1)
 {
 for (int i = 0; i n; i--)
 {
 for (int j = 1; j 
Vielen Dank für alle Ideen!

biba

Dirk.Pegasus

Hallo zusammen,:

hab mich nun entschlossen das komplett auf DataGridView nach .net 2.0 umzustellen. Damit hat sich sich die Frage „grundsätzlich“ erledigt. Sollte aber jemand einen zündenden Gedanken haben, würde mich aus „sportlichen“ Gründen trotzdem interessieren, wie man’s richtig macht! Den alten Source hab ich nur „geparkt“!

mfg

Dirk.Pegasus