应用程序和Access查询向导之间的LIKE行为不同

我正在从Web应用程序执行以下查询,并访问2007查询向导。我得到两个不同的结果。

SELECT R.Rept_Name, D.Dist_Name,S.State_Name FROM (tblReporter AS R LEFT JOIN tblDist AS D ON R.Dist_Id=D.Dist_Id) LEFT JOIN  tblState AS S ON S.State_Id=R.State_Id WHERE R.Rept_Name LIKE '*Ra*' ORDER BY R.Rept_Name;

Web应用程序的结果为0行,查询向导的结果为2行。如果删除条件,则两个结果均相同。请帮助我查询有什么问题。如果有其他信息需要,请告诉我。

Web应用程序代码…

public DataTable getRept(string rept, string mobno)

{

DataTable dt = new DataTable();

using (OleDbConnection conn = new OleDbConnection(getConnection()))

{

using (OleDbCommand cmd = conn.CreateCommand())

{

cmd.CommandType = CommandType.Text;

cmd.CommandText = "SELECT R.Rept_Name, D.Dist_Name,S.State_Name FROM (tblReporter AS R LEFT JOIN tblDist AS D ON R.Dist_Id=D.Dist_Id) LEFT JOIN tblState AS S ON S.State_Id=R.State_Id WHERE R.Rept_Name LIKE '*" + rept + "*' ORDER BY R.Rept_Name;";

conn.Open();

using (OleDbDataReader sdr = cmd.ExecuteReader())

{

if (sdr.HasRows)

dt.Load(sdr);

}

}

}

return dt;

}

回答:

在Access本身中运行的查询与从外部应用程序运行的查询之间,LIKE通配符之间的差异使您大跌眼镜。

从Access本身运行查询时,您需要使用星号作为通配符:LIKE '*Ra*'

从外部应用程序(例如C#应用程序)运行查询时,您需要使用百分号作为通配符:LIKE '%Ra%'

以上是 应用程序和Access查询向导之间的LIKE行为不同 的全部内容, 来源链接: utcz.com/qa/398806.html

回到顶部