检索 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#] != ''
错误:附加信息:查询表达式 '[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#] != ''