0

错误:附加信息:查询表达式 '[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#] !=''这一行时,它可以正常工作。我在这里做错了什么?

4

1 回答 1

1

我认为问题在于您的列具有NULL不仅仅是空白字符串

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

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

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

于 2016-09-19T10:39:11.770 回答