> If Not Cust.Remarks Is Nothing Or > Cust.Remarks.Count = 0 Then > grdRemarks.DataSource = Cust.Remarks > grdRemarks.DataBind() > Else > Visible = False > End If > > und vermute mal das der code knallt wenn Cust.Remarks > nothing ist nun meine > frage wie loest man sowas am saubersten.
Ok... Mal schauen ... Operator-Reihenfolge: If (Not (Cust.Remarks Is Nothing)) Or (Cust.Remarks.Count = 0) Then In der Tat... Wenn Cust.Remarks Nothing ist, dann gibt es kein Cust.Remarks.Count ... Allerdings kommt mir der Ausdruck falsch vor... Not bindet stärker als Or... Aber gemeint ist doch bestimmt das hier: If Not (Cust.Remarks Is Nothing Or Cust.Remarks.Count = 0) Then Also ein Databinding wenn Cust.Remarks weder Nothing noch leer(Count=0) ist... Dsa Problem bleibt aber weiterhin... Lösen kann man sowas mit short-circuiting-Operatoren... Für Or heisst der OrElse, also richtig: If Not (Cust.Remarks Is Nothing OrElse Cust.Remarks.Count = 0) Then Short-circuiting bedeutet, dass nur soviel vom Ausdruck ausgewertet wird, wie nötig ist, um eine Aussage über das Ergebnis zu treffen. A Or B wertet also A und B aus, A OrElse B wertet B nur aus, wenn A false ergeben hat, da falls A = true ist das Ergebnis des ganzen Ausdruckes schon als true feststeht. Der short-circuiting Operator zu And heisst AndAlso. Er wertet den rechten Operanten nur aus, wenn der linke true ergibt. In C# übrigens sind & und | das normale And/Or und &&, || die short-circuiting-Varianten. Gruss, Claudius _______________________________________________ Asp.net Mailingliste, Postings senden an: Asp.net@glengamoi.com An-/Abmeldung und Suchfunktion unter: http://www.glengamoi.com/mailman/listinfo/asp.net