2009-08-06 10 views
1

J'ai écrit mon propre type de données qui est ensuite utilisé comme type pour une colonne dans une base de données. Je lis des données XML à partir d'un fichier. Après avoir appelé la méthode ReadXML (fichier), toutes les cellules ont des valeurs à l'exception des cellules dans les colonnes avec mon type de données. Y a-t-il un opérateur que je dois redéfinir pour que ReadXML (fichier) puisse prendre les données du fichier et en faire un MyDataType? En outre, lorsque j'essaie de trier la vue par défaut sur cette colonne, j'obtiens "Référence d'objet non à une instance d'un objet". Merci pour toute aide.Colonne DataTable avec type de données personnalisé

Répondre

1

Oui, vous pouvez créer une colonne à l'aide d'un type de données personnalisé.

En supposant que vous voulez une propriété à être de type Adresse:

var ds = new DataSet(); 
var table = new DataTable(); 
table.Columns.Add("Address", typeof(Address)); 

ds.Tables.Add(table); 

Si vous voulez être en mesure de sérialisation votre ensemble de données (vous ne pouvez pas sérialiser un datatable), vous devez vous assurer que votre type Address est sérialisable.

Il existe plusieurs façons de marquer comme classe comme sérialisable. Le plus simple est d'utiliser le SerializableAttribute. Mais je recommande que votre classe Address implémente l'interface IXmlSerializable. Cela peut être un peu plus difficile, mais vous éviterez le problème de version.

Questions connexes