2010-12-10 84 views
0

Comment puis-je faire PCTofSales sûr, n'est pas 0.diviser par 0 problème vb.net

'gets the projected sales by dividing the currentsales by the percent of sales 
    Dim projectedye As New DataColumn 
    projectedye = New DataColumn("ProjSales", GetType(Double)) 
    projectedye.Expression = "CurrentSales/(PCTofSales)" 

Répondre

2

En supposant que vous utilisez .NET 3.5:

pctofsales.Expression = "IIF([YEsales] = 0, 0, [ASOFSales]/[YEsales])" 

Voir ici: MSDN's article pour des informations sur les fonctions que vous pouvez utiliser dans l'expression.

+0

génie !!!!!!!!! – MyHeadHurts

+0

Devrait être IF pas IIF? IF évalue seulement l'un de ses arguments. IIF évalue les deux. – MarkJ

+0

cela ne fonctionne qu'avec IIF – MyHeadHurts

0

Pouvez-vous pas utiliser un IF THEN pour appeler la fonction lorsque:

« [ASOFSales]/[YEsales] "

est égal à zéro ou est inapproprié à diviser?

+0

j'ai essayé, mais je ne peux pas sembler l'obtenir, parce que les données sont dans une colonne de données donc j'ai du mal – MyHeadHurts

+0

quelque part dans là vous pouvez utiliser si alors. vous pourriez tester les valeurs individuelles si vous deviez et prendre une décision. votre tête ne blesse pas * cela * beaucoup le fait? :) – johnny

+0

ouais le problème est le si les déclarations alors ne fonctionnent pas je vais les poster – MyHeadHurts

0

Exécutez une mise à jour sur votre ensemble de données pour remplacer tous les 0 par des valeurs NULL OU modifiez votre source de données pour renvoyer des valeurs NULL au lieu de 0 dans la ou les colonnes PCTofSales/other.

+0

je vais essayer ce – MyHeadHurts