检索 excel 数据时检查单元格中的 null 和空字符串

Check null and emptry string in a cell while retrieving the excel data

错误:附加信息:查询表达式 '[SKU N#] !=''' 中的语法错误(缺少运算符)。

 if (getFileExtension.ToLower() == ".xls")
                            {
                                conString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + getFileName + ";Extended Properties=\"Excel 8.0;HDR=Yes;;IMEX=1\""; ;
                            }
                            else if (getFileExtension.ToLower() == ".xlsx")
                            {
                                conString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + getFileName + ";Extended Properties=\"Excel 12.0;HDR=Yes;;IMEX=1\"";
                            }
                            OleDbConnection con = new OleDbConnection(conString);
                            if (con.State == ConnectionState.Closed) con.Open();
                            System.Data.DataTable ExcelSheets = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
                            string SpreadSheetName = ExcelSheets.Rows[0]["TABLE_NAME"].ToString();

                            switch (UpdateProductViewModel.ProductDataType)
                            {
                                case 1:
                                    query = "SELECT * FROM [" + SpreadSheetName + "] WHERE [SKU N#] !='' AND [SKU N#] NOT LIKE '%P'";
                                    break;
                                case 2:
                                    query = "SELECT * FROM [" + SpreadSheetName + "] WHERE [SKU N#] !='' AND [SKU N#] LIKE '%P'";
                                    break;
                                case 3:
                                    query = "SELECT * FROM [" + SpreadSheetName + "] WHERE [SKU N#] !=''";
                                    break;
                            }

当我删除 WHERE [SKU N#] !='' 这一行时,它工作正常。我在这里做错了什么?

我认为问题是 您的列有 NULL 个值 并且 不仅仅是空白字符串.

任何值都不能等于(或不等于)NULL,因为 NULL 没有值。

WHERE NOT [SKU N#] = '' 可以工作,但可能不是检查 NULL 值的最佳方法。

我建议使用 WHERE [SKU N#] IS NOT NULL AND [SKU N#] != ''