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

标签 c# asp.net ms-access ms-access-2007

我正在从我的 Web 应用程序执行以下查询并 Access 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 行。如果我删除 where 条件,则两个结果相同。请帮我看看查询有什么问题。如果需要任何其他信息,请告诉我。

网络应用程序代码...

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%'

关于c# - 我的应用程序和 Access 查询向导之间的不同 LIKE 行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41062684/

相关文章:

asp.net - 如何在gridview中包含DatePicker文本框?

ms-access - MS Access - 使用相同的记录 ID 转到另一个子表单

sql-server - 需要帮助在 MS Access 中实现完全外部联接

mysql - 插入到由 MySQL 后端中的两个表构建的具有一对一关系的 MS Access 查询中?

c# - 如何将我的组件放入 Visual Studio 工具箱中的新组中?

c# - ViewModel 之间是否可以通信?

c# - 数字十进制格式

c# - 具有前导数字的枚举值是否有命名约定?

c# - 如何将 BUTTON 值插入数据库

php - Ajax 发布在 asp 中失败