看这条语句“select 姓名 from 联系人 where 编号 like '*A12*'”,有没有错误?使用ACCESS 2002数据库,语法没有问题,就是查不出数据来

解决方案 »

  1.   

    使用“like '%A12%'”也不行
    原来用“*”号在ACCESS 2002视图里还可以,放在Asp.Net代码里就不行,改用“%”号在ACCESS 2002视图里都查不到数据了
      

  2.   

    like '%A12%'yizhixiaozhu(罗马小屠夫) 正解.
      

  3.   

    like '%A12%' - 错误的,试过
      

  4.   

    like '%A12%' - 没错,我刚刚试过
      

  5.   

    //整段代码很简单,问题就出在查询SQL语句LIKE模糊查询部分,不明白这条语句在ACCESS视图查询里可行,在下面这段代码里却查不到数据OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data source=" + Server.MapPath(".") + "..\\DataBase\\bc.mdb");conn.Open();
    OleDbCommand comm = new OleDbCommand("select 姓名 from 联系人 where 编号 like '*A12*'", conn);
    object obj = comm.ExecuteScalar();
    conn.Close();//输出编号包含‘A12’的姓名
    if(obj != null)
    lbMsg.Text = obj.ToString();
      

  6.   

    为什么不用
    OleDbDataReader obj = comm.ExecuteReader();
    while (obj.Read())
    {
    }
      

  7.   

    Read(), Fill() - 都试过了,根本就是 like '*A12*' 或 like '%A12%' 检索不到数据
      

  8.   

    楼主先查一下ExecuteScalar()返回的是什么?
      

  9.   

    回复人: wuyi8808(tm) studio 2005  :) 
    like '%A12%' - 没错,我刚刚试过
    -------------------------------------------------------------------------------
    要证明 like '%A12%' 是错的也很简单
    建立个.mdb数据库,新建个“联系人”表,加两个字段“编号”、“姓名”,添加两条编号与“A12”数据相关数据,在查询视图中运行“select 姓名 from 联系人 where 编号 like '%A12%'”你看找到数据没?
      

  10.   

    ExecuteScalar() 返回null值
    like '%A12%' 这个只对SQL Server 适用, Access 用*,搞了半天也没弄好,只要加上 LIKE 子句就查不到数据
      

  11.   

    select 姓名 from 联系人 where 编号 like '%A12%'
    这句是没错的,如果不行,你可以试一下,把中文改成英文
    返回NUll也可能你库里根本就没有符合条件的行
      

  12.   

    “select 姓名 from 联系人 where 编号 like '%A12%'”,
      

  13.   

    你的A12是变量名还是关键字呀?
    变量名就是
    “select 姓名 from 联系人 where 编号 like '%"+A12+"%'”
    直接使关键字就是
    “select 姓名 from 联系人 where 编号 like '%A12%'”
      

  14.   

    你的A12是变量名还是关键字呀?
    变量名就是
    “select 姓名 from 联系人 where 编号 like '%"+A12+"%'”
    直接使关键字就是
    “select 姓名 from 联系人 where 编号 like '%A12%'”
      

  15.   

    试试把表名"联系人"改为英文的试一下,还有 like '%A12%'是正确的,对SQL,Access都有用,自己刚刚做过这方面的工作,改这儿试试看:
    object obj = comm.ExecuteScalar();-->
    OleDbDataReader obj=Comm.ExecuteQuery();
    while (obj.Read())
    {
    ..............
    }
      

  16.   

    sqlstr = "select * from UserInfo where a3 like '%'" + txtchName.Text.ToString.Trim + "'%'"请问这样写对吗?
      

  17.   

    楼上的不对,写成 like '%" + txtchName.Text.ToString.Trim + "%'
    使用存储过程带参数则 like '%' + @name + '%' 回复人: scwzp(梦回彩云间) 
    试试把表名"联系人"改为英文的试一下,还有 like '%A12%'是正确的,对SQL,Access都有用……
    ------------------------------------------------------------------------------------
    A12是关键词,like '%A12%' 对sql server肯定是正确的,但对Access怎么试都是错误的,Access用*代替%
    再强调一次:like '*A12*'在Access查询视图里能找到数据,为何放在Asp.Net上来那段代码里就不能?可能因为执行环境的不同吧,用like '%A12%'也不行,还有其它写法么?
    select 姓名 from 联系人 where 编号 like '*A12*'
      

  18.   

    '%12A%'是对的 你做不出来 是你自己的问题 Access的通配符 就是%
      

  19.   

    select 姓名 from 联系人 where 编号=12
    这样取有值吗?
    搞不好根本就是代码没写对。
    还有access里name和password是保留字,“name”这些字段要写成“[name]”。
      

  20.   

    select [姓名] from [联系人] where [编号] like '*A12*%'
      

  21.   

    “select 姓名 from 联系人 where 编号 like '%A12%'”
    语法没有问题,有可能你的A12问题
    换个数据查看