Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/29.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# “我的应用程序”和“访问查询向导”之间的类似行为不同_C#_Asp.net_Ms Access_Ms Access 2007 - Fatal编程技术网

C# “我的应用程序”和“访问查询向导”之间的类似行为不同

C# “我的应用程序”和“访问查询向导”之间的类似行为不同,c#,asp.net,ms-access,ms-access-2007,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 B

我正在从我的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条件,则两个结果相同。请帮我查一下有什么问题。如果需要任何其他信息,请告诉我

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本身中运行的查询与从外部应用程序运行的查询之间存在类似通配符的差异,这会让您大吃一惊

从Access本身运行查询时,需要使用星号作为通配符:例如“*Ra*”


从外部应用程序(如C应用程序)运行查询时,需要使用百分号作为通配符:如“%Ra%”。

请使用内联文本退出。您对SQL注入非常开放。请为每个查询使用参数-即使您只是提供了一个示例。先生,我如何在like运算符中使用参数化查询。像“%@Ra%”。这不起作用。什么是正确的语法。@AnilLimbani您的查询应该使用。。。喜欢您需要在PreparedStatement对象上执行setString,%Ra%。如果你需要更多的帮助,请。