2011-06-07 2 views
0

J'essaie de lier des données d'un objet à ma source de liaison.Pourquoi une exception de référence nulle lors de la liaison de sources de données?

j'ai écrit ceci:

if (input.PhysicalCharacteristics.Mass != null) 
    massBindingSource.DataSource = input.PhysicalCharacteristics.Mass; 

mais il me lança un exception nulle.

Où pourrait être le problème? Quand je le débogue, je peux voir que la masse n'est pas nulle - mais cela doit être pour entrer dans cette condition - mais quand elle essaie de définir la source de données sur ma source de liaison, elle échoue. Qu'est-ce qui ne va pas?

+1

Les DataItems (colonnes) que vous utilisez dans massBindingSource existent-ils dans l'objet que vous affectez? – Akhil

+0

certains d'entre eux sont mis à null - par exemple dans ce input.physicalCharacteristic.Mass.Value = null - mais j'ai textBox appelé Value, qui utilise des données de source de liaison de données. Est-ce un problème? –

+0

NULL ne devrait pas poser de problème. Pouvez-vous essayer massBindingSource.DataBind(); comme l'a suggéré Brett? – Akhil

Répondre

1

Quoi que vous liiez aussi, dans le fichier .ascx/.aspx toutes les propriétés auxquelles vous essayez d'accéder input.PhysicalCharacteristics.Mass existent-elles? Et sont-ils nuls? Edit: à partir de ce que votre commentaire a dit, si elles sont nulles, j'ai toujours attribué une chaîne vide à la textBox.Text Cela pourrait être accompli par quelque chose comme: (Je pense que cela devrait fonctionner).

textBox.Text = '<%# DataBinder.Eval(Container.DataItem, "Value") ?? "" %>' 
+0

vous pensez ne pas appeler 'DataBind()' provoque le 'NullReferenceException '? –

+0

@Bala R - si l'exception de référence nulle se produisait sur le côté .ascx/.aspx, alors il pourrait, non? – Brett

+0

Je ne vois pas comment ne pas appeler 'DataBind()' peut l'exception; d'ailleurs nous ne savons même pas s'il s'agit d'une exception asp.net (généralement, mais pas nécessairement, la source de données de liaison est utilisée dans les applications winforms). –

0

Convertissez le type de données Mass en un type de données acceptable par Massbindingsource.

Questions connexes