Datatable spaltentyp wechseln

20/06/2008 - 10:10 von Michael Kugler | Report spam
Hallo NG,


ich erzeuge einen DataTable für ein 3-rd Party Produkt. Da dieses Produkt
nichts mit Guid anfangen kann dachte ich, ich wandle die spalten einfach um.
Irgend wie klappt das aber nicht.

foreach (DataColumn dc in myDt.Columns)

if (dc.DataType = System.Type.GetType("Guid"))

{

dc.DataType = System.Type.GetType("System.String");

}

return myDt;





schöne Grüße



Michael Kugler
 

Lesen sie die antworten

#1 Elmar Boye
20/06/2008 - 11:17 | Warnen spam
Hallo Michael,

Michael Kugler schrieb:
ich erzeuge einen DataTable für ein 3-rd Party Produkt. Da dieses Produkt
nichts mit Guid anfangen kann dachte ich, ich wandle die spalten einfach um.
Irgend wie klappt das aber nicht.



Das kann nicht klappen, da die DataColumn die Inhalte entsprechend dem System.Type
speichert. Eine Änderung ist nicht mehr möglich, sobald Zeilen enthalten sind.

Das beste wàre, bereits bei der Erzeugung die Daten in eine Zeichenkette
zu konvertieren.

Geht das nicht, so müsstest Du eine neue Spalte erstellen, die Daten
übertragen und die Guid Spalte löschen, in etwa:

DataColumn guidColumn = table.Columns["guid"];
DataColumn stringGuidColumn = table.Columns.Add("sguid", typeof(string));
foreach (DataRow row in table.Rows)
row[stringGuidColumn] = row[guidColumn];

table.Columns.Remove(guidColumn);
stringGuidColumn.ColumnName = guidColumn.ColumnName;

Gruß Elmar

Ähnliche fragen