读取Acess数据库,奇怪问题。
sql= "select   count(id)   from   news   where   (title   like    '* "+keyword+ "* '   or   content   like    '* "+keyword+ "* ') ";   
 这句断点以后得到sql= "select   count(id)   from   news   where   title   like    '*1* '   or   content   like    '*1* ') "; 
 得到结果2   
 可是用OleDbDataReader无法得到结果,换了语句也不行,以下是代码: 
 private   static   int   getcount() 
 { 
 	string   constr= "Provider=Microsoft.Jet.OLEDB.4.0;Data   Source= "+System.Web.HttpContext.Current.Server.MapPath(System.Configuration.ConfigurationSettings.AppSettings[ "cs "])+ "; "; 
 	OleDbConnection   conn=new   OleDbConnection(constr); 
 	string   sql; 
 	if(sort== "0 ") 
 	{ 
 		sql= "select   count(id)   as   re   from   news   where   (title   like    '* "+keyword+ "* '   or   content   like    '* "+keyword+ "* ') "; 
 	} 
 	else 
 	{ 
 		sql= "select   count(id)   as   re   from   news   where   (title   like    '* "+keyword+ "* '   or   content   like    '* "+keyword+ "* ')   and   news.sortid= "+sort; 
 	} 
 	OleDbCommand   cmd=new   OleDbCommand(sql,conn); 
 	conn.Open(); 
 	OleDbDataReader   dr=cmd.ExecuteReader(CommandBehavior.CloseConnection); 
 	if(dr.Read()) 
 	{ 
 		int   re=Convert.ToInt32(dr[ "re "].ToString());///这个地方得不到2这个值,总是0 
 		dr.Close(); 
 		return   re; 
 	} 
 	conn.Close(); 
 	return   0; 
 }
------解决方案--------------------可能是因爲CommandBehavior.CloseConnection, 
 OleDbDataReader dr=cmd.ExecuteReader();試試 
------解决方案--------------------strig Query= "select count(id) as re from news where title like  '% "+keyword+ "% ' or content like  '% "+keyword+ "% ' ";
------解决方案--------------------如果是access环境中,like用*号,但在C#中应该还是用%号吧?