SQL Like 条件不会显示我的搜索数据 C# 和 Ms Access

Posted

技术标签:

【中文标题】SQL Like 条件不会显示我的搜索数据 C# 和 Ms Access【英文标题】:SQL Like Conditions won't display my search data C# and Ms Access 【发布时间】:2013-04-17 14:55:38 【问题描述】:

我尝试通过 MS Access (SELECT mname, mcellno WHERE mcellno LIKE '0922*') 进行查询,结果显示我想要的数据。 虽然这个

    private Int32 getMemberNo()
    
        con.ConnectionString = db.konek();
        String sql = "SELECT COUNT(*) AS x FROM members";
        Int32 count = 0;
        try
        
            con.Open();
            OleDbCommand cmd = new OleDbCommand(sql, con);
            OleDbDataReader rdr = cmd.ExecuteReader();
            if (rdr.Read())
            
                count = Convert.ToInt32(rdr["x"].ToString());
            
        
        catch (Exception ex)
        
            Console.WriteLine("Error: " + ex);
        
        finally
        
            con.Close();
        
        return count;
    

    public String[,] displayMobilePrefix() //THIS FUNCTION
    
        con.ConnectionString = db.konek();
        String sql = "SELECT mname, mcellno FROM members WHERE mcellno LIKE '" + @mcellno + "*'";
        int count = this.getMemberNo();
        String[,] ars = new String[2, count];
        try
        
            con.Open();
            OleDbCommand cmd = new OleDbCommand(sql, con);
            cmd.Parameters.Add("@mcellno", OleDbType.VarChar, 30).Value = this.mcellno;
            OleDbDataReader rdr = cmd.ExecuteReader();
            int counter = 0;
            while (rdr.Read())
            
                ars[0, counter] = rdr["mname"].ToString();
                ars[1, counter] = rdr["mcellno"].ToString();
                counter++;
            
        

        finally
        
            con.Close();
        
        return ars; //never returns any data
    

它不会返回任何数据。但是我尝试在我的字符串查询上添加一个参数,但它什么也没返回。

【问题讨论】:

mcellno的数据类型是什么? 如果从数据库运行 sql 查询会发生什么?那它会得到什么吗? (你应该为@mcellno 输入一个合理的值。) 【参考方案1】:

对于 OleDb,您的 Access 查询必须使用 % 而不是 * 作为通配符。

String sql = "SELECT mname, mcellno FROM members WHERE mcellno LIKE '" + @mcellno + "%'";

【讨论】:

以上是关于SQL Like 条件不会显示我的搜索数据 C# 和 Ms Access的主要内容,如果未能解决你的问题,请参考以下文章

C#中 SQL语句 带参数的like 查询怎么写

在T-SQL中具有可变数量的搜索条件的LIKE运算符

mysql如何使用like关键字实现模糊查询?有啥注意事项

C# 版本的 SQL LIKE

在SQL Server中用好模糊查询指令LIKE

SQL 查询使用多个条件和 LIKE 通配符