Hallo Zusammen,
ich benutze VS2012, NET 4.5.
Ich lese aus einer XML-Datei die Daten in ein DataSet und kopiere die Tabelle anschließend in eine neue Datentabelle.
Nun möchte ich bestimmte Zeilen aus dieser Datentabelle in eine neue Datentabelle schreiben. Dies führt jedoch zu einem Fehler.
$exception {"Spalte 0 wurde nicht gefunden."} System.Exception {System.IndexOutOfRangeException}
Nachdem ich mit dem Internet nicht weitergekommen bin, versuche ich es über dieses Forum.
Die XML-Datei wird korrekt eingelesen. Das kopieren der Datentabelle ist einwandfrei (Anzeige in VS zeigt alle Daten).
Die Exception wird durch die ForEach-Schleife (foreach (DataColumn column in dt.Columns)) geworfen.
Hier der Code:
[highlight=c#]
public DataTable LeseZeilenDataTableXml(string absoluterPfadDerXmlDatei, params object[] zeilen)
{
try
{
var ds = new DataSet();
var dt = new DataTable();
var dtr = new DataTable();
ds.ReadXml(absoluterPfadDerXmlDatei);
dt = ds.Tables[0].Copy();
DataRow row;
int rowCount = 0;
foreach (DataRow rows in dt.Rows)
{
string s = dt.Rows[rowCount][0].ToString();
if (zeilen.Contains(s))
{
row = dtr.NewRow();
int colCount = 0;
foreach (DataColumn column in dt.Columns)
{
row[colCount] = rows[column];
++colCount;
}
dtr.Rows.Add(row);
}
++rowCount;
}
return dtr;
}
catch (Exception e)
{
string text =
string.Format(
"Fehler im Lesen der XML-Datei {0}. " +
"\r\nSchwerwiegender Fehler. Bitte melden Sie diesen Fehler dem Systemadministrator." +
"\r\n\r\nWindows-Fehlermeldung:: {1}",
absoluterPfadDerXmlDatei, e.Message);
_meldung.FehlerMeldung(text, "Fehlerhaftes Lesen der XML-Datei " + absoluterPfadDerXmlDatei);
return null;
}
}
[/highlight]
Vielen Dank für Eure Hilfe
Grüße
ich benutze VS2012, NET 4.5.
Ich lese aus einer XML-Datei die Daten in ein DataSet und kopiere die Tabelle anschließend in eine neue Datentabelle.
Nun möchte ich bestimmte Zeilen aus dieser Datentabelle in eine neue Datentabelle schreiben. Dies führt jedoch zu einem Fehler.
$exception {"Spalte 0 wurde nicht gefunden."} System.Exception {System.IndexOutOfRangeException}
Nachdem ich mit dem Internet nicht weitergekommen bin, versuche ich es über dieses Forum.
Die XML-Datei wird korrekt eingelesen. Das kopieren der Datentabelle ist einwandfrei (Anzeige in VS zeigt alle Daten).
Die Exception wird durch die ForEach-Schleife (foreach (DataColumn column in dt.Columns)) geworfen.
Hier der Code:
[highlight=c#]
public DataTable LeseZeilenDataTableXml(string absoluterPfadDerXmlDatei, params object[] zeilen)
{
try
{
var ds = new DataSet();
var dt = new DataTable();
var dtr = new DataTable();
ds.ReadXml(absoluterPfadDerXmlDatei);
dt = ds.Tables[0].Copy();
DataRow row;
int rowCount = 0;
foreach (DataRow rows in dt.Rows)
{
string s = dt.Rows[rowCount][0].ToString();
if (zeilen.Contains(s))
{
row = dtr.NewRow();
int colCount = 0;
foreach (DataColumn column in dt.Columns)
{
row[colCount] = rows[column];
++colCount;
}
dtr.Rows.Add(row);
}
++rowCount;
}
return dtr;
}
catch (Exception e)
{
string text =
string.Format(
"Fehler im Lesen der XML-Datei {0}. " +
"\r\nSchwerwiegender Fehler. Bitte melden Sie diesen Fehler dem Systemadministrator." +
"\r\n\r\nWindows-Fehlermeldung:: {1}",
absoluterPfadDerXmlDatei, e.Message);
_meldung.FehlerMeldung(text, "Fehlerhaftes Lesen der XML-Datei " + absoluterPfadDerXmlDatei);
return null;
}
}
[/highlight]
Vielen Dank für Eure Hilfe
Grüße
Comment