In This Topic
There are a lot of ways to validate data in FlexSheet. We will explain a simple way of validation, which is throwing an exception on passing an invalid value.
To validate data, we have created a class named ProductBase which contains data about product line, color, name, price, cost, weight, volume discontinued, and rating. Another class named ProductRow contains the SetValue method which simply throws exceptions when a property setter is passed an invalid value. This method allows for property-level validation only (no item-level validation). The following code implements data validation in SetValue method:
Try
If p = "Price" AndAlso DirectCast(value, System.Nullable(Of Double)) <= 0 Then
Throw New Exception("Price must be > 0.")
End If
If p = "Cost" AndAlso DirectCast(value, System.Nullable(Of Double)) <= 0 Then
Throw New Exception("Cost must be > 0.")
End If
If p = "Weight" AndAlso DirectCast(value, System.Nullable(Of Double)) <= 0 Then
Throw New Exception("Weight must be > 0.")
End If
If p = "Rating" AndAlso (DirectCast(value, System.Nullable(Of Integer)) < 0 _
OrElse DirectCast(value, System.Nullable(Of Integer)) > 5) Then
Throw New Exception("Rating must be between 0 and 5.")
End If
MyBase.SetValue(p, value)
Catch e As Exception
MessageBox.Show(e.Message)
End Try
End Sub
try
{
if (p == "Price" && (double?)value <= 0)
{
throw new Exception("Price must be > 0.");
}
if (p == "Cost" && (double?)value <= 0)
{
throw new Exception("Cost must be > 0.");
}
if (p == "Weight" && (double?)value <= 0)
{
throw new Exception("Weight must be > 0.");
}
if (p == "Rating" && ((int?)value < 0 || (int?)value > 5))
{
throw new Exception("Rating must be between 0 and 5.");
}
base.SetValue(p, value);
}
catch(Exception e)
{
MessageBox.Show(e.Message);
}
The ProductThrow class throws exception when a user sets price, cost or weight properties to a negative value or sets rating to a value less than zero and greater than 5.