C# 无法使用c在MS Access中使用like运算符
我尝试使用like运算符搜索表,但它总是返回0条记录。但是,如果我在MS Access的SQL视图中使用相同的查询,它将按预期工作。我正在使用以下代码:C# 无法使用c在MS Access中使用like运算符,c#,ms-access,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(
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();
}
尝试将*字符更改为%,这是SQL查询中用作通配符的字符。我在access中使用过它,它工作得很好。 您还必须尝试使用%代替*
string SelectQry=@select ID,分类账中的名称,如“%+Name+%” 此外,您的查询完全容易受到SQL注入的攻击。如果您不知道这是什么,请查找。%s是OleDb提供程序使用的通配符。即使从*更改为%也没有帮助。您是否可以提供一个特定的查询,该查询在Access works中直接执行,但不通过C代码执行?具体地说,我的意思是,你提供准确的查询,关键字和所有