使用c#在MS Access中不能使用like运算符

时间:2014-04-05 21:01:41

标签: c# ms-access

我正在尝试使用like运算符搜索表,但它总是返回0条记录。但是,如果我在MS Access中的SQL视图中使用相同的查询,它将按预期工作。我使用以下代码:

string searchStr=search_text.Text;
if (search_text.Text.Length > 0)
{
    string ConnectString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;DATA SOURCE=" +
        Server.MapPath("db\\fencing.mdb;");
    OleDbConnection objCon;
    OleDbCommand objCmd;
    DataTable DS = new DataTable();
    string strQuery = "select * from WorkOrders where subdivision like '*" 
        + searchStr + "*'";

    objCon = new OleDbConnection(ConnectString);
    OleDbDataAdapter d1 = new OleDbDataAdapter(strQuery, objCon);
    objCon.Open();
    d1.Fill(DS);
    int totalPages = 0;
    if (DS.Rows.Count > 0)
    {
        totalPages = DS.Rows.Count;
        GridView1.DataSource = DS;
        GridView1.DataBind();
        custPager.TotalPages = totalPages % GridView1.PageSize == 0 ?
            totalPages / GridView1.PageSize :
            totalPages / GridView1.PageSize + 1;

    }
    objCon.Close();
}

2 个答案:

答案 0 :(得分:0)

尝试将*字符更改为%,这些字符在SQL查询中用作通配符。

答案 1 :(得分:0)

我使用它可以访问它的工作状态。 你必须用%来代替*。

string SelectQry = @“选择ID,来自Ledger的名称,其中名称如'%”+名称+“%'”;