I've a condition if the a column in database has either "" or DBNull it should take it as 0.
Can I have that in one line. Anyway I did that coding in the long way. Is there any possible shorter way to achieve this.
This is my code:
public string difference(object val1, object val2)
{
double value1 = 0;
double value2 = 0;
if (val1 == "" && val2 == "")
{
value3 = value1 - value2;
}
else if (val1 != "" && val2 != "")
{
if (val1 != DBNull.Value && val2 != DBNull.Value)
{
value1 = Convert.ToDouble(val1);
value2 = Convert.ToDouble(val2);
value3 = value1 - value2;
}
else if (val1 == DBNull.Value && val2 == DBNull.Value)
{
value3 = value1 - value2;
}
else if (val1 != DBNull.Value && val2 == DBNull.Value)
{
value1 = Convert.ToDouble(val1);
value3 = value1 - value2;
}
else
{
value2 = Convert.ToDouble(val2);
value3 = value1 - value2;
}
}
else if (val1 == "" && val2 != "")
{
if (val2 == DBNull.Value)
{
value3 = value1 - value2;
}
else
{
value2 = Convert.ToDouble(val2);
value3 = value1 - value2;
}
}
else
{
if (val1 == DBNull.Value)
{
value3 = value1 - value2;
}
else
{
value1 = Convert.ToDouble(val1);
value3 = value1 - value2;
}
}
return Convert.ToString(value3);
}
Any help will be greatly appreciated.
Your method could simply be written as
public double Difference(object val1, object val2)
{
double value1;
double value2;
double.TryParse(val1.ToString(), out value1);
double.TryParse(val2.ToString(), out value2);
return value1 - value2;
}
Assuming val1
and val2
are never null(same is true for your code too). Also I made the return type as double
. If you want it as string call double.ToString
method.