checking for each row in excel dt is not working and accepting blank in C#

I have dt in which there are 4 rows and 35 columns. So I want to check for each row whether there is null value supplied or not. If null is supplied then break the condition if not then go ahead. So I tried the code below, but it’s not working and is accepting the null values as well.

foreach (DataRow row in dt.Rows)
                {
                    if (row["SAP_ID"] != DBNull.Value || row["CITY"] != DBNull.Value || row["FINAL_SR_DATE"] != DBNull.Value || row["FINAL_SO_DATE"] != DBNull.Value || row["INVOICE_DATE"] != DBNull.Value || row["IP_ID"] != DBNull.Value || row["APPLICABLE_MSA"] != DBNull.Value || row["SITE_CATEGORY"] != DBNull.Value || row["ID_OD"] != DBNull.Value || row["RFI_DATE"] != DBNull.Value || row["BILL_START_DATE"] != DBNull.Value || row["BILL_END_DATE"] != DBNull.Value || row["NO_OF_OPCO"] != DBNull.Value || row["ACTUAL_RENT_AMT"] != DBNull.Value || row["TENURE"] != DBNull.Value || row["GSM_ANTENNA_EXC_SAIL"] != DBNull.Value || row["GSM_ANTENNA_NOTEXC_SAIL"] != DBNull.Value || row["REV_TOT_CNT_GSM_ANTENNA"] != DBNull.Value || row["MW_ANTENNA_OF_UPTO06_DIA"] != DBNull.Value || row["MW_ANTENNA_OF_12DIA"] != DBNull.Value || row["MW_ANTENNA_OF_GREATER12_DIA"] != DBNull.Value || row["HEIGHT_OF_HEIGHEST_ANTENNA"] != DBNull.Value || row["WEIGHT_OF_TOWER_TOP_BTS"] != DBNull.Value || row["WIND_SPEED"] != DBNull.Value || row["POWER_RATING_OF_BTS"] != DBNull.Value || row["FLOOR_SPACE_INDOOR"] != DBNull.Value || row["FLOOR_SPACE_OUTDOOR"] != DBNull.Value || row["EB_STATUS_VALUE"] != DBNull.Value || row["NO_OF_US"] != DBNull.Value || row["HIGHER_RENT"] != DBNull.Value || row["RRH_COUNT"] != DBNull.Value || row["VOLUME_DISCOUNT"] != DBNull.Value || row["VENDOR_NAME"] != DBNull.Value || row["CIRCLE"] != DBNull.Value || row["APPLICABLE_SITE_RENT"] != DBNull.Value)
                    {
                        ... // do something here
                    }
                    else
                    {
                        ... // do something here
                    }
                }

Please suggest what is wrong here.

>Solution :

Long story short

|| -> &&

Explanation

You are asking whether

x differs from null or y differs from null or …

When does this evaluate to true? This is true if and only if AT LEAST one of the operands differ from null. As a result, you will either have to check whether

x differs from null and y differs from null and …

or, alternatively:

not (x is null or y is null or …)

The underlying logic is either to check whether everything differs from null or it’s false that any of them is null.

Leave a Reply