试了SELECT *FROM Controller WHERE parent='%s' AND addr='%s',不行

解决方案 »

  1.   

    SELECT *FROM Controller WHERE parent='%s' AND addr='%s'
    查詢一行 加%什麼意思
      

  2.   

    你用%是想模糊吗
    模糊要用LIKE,但是用LIKE很有可能匹配出多条
      

  3.   

    我在mfc使用ADO访问数据库,sqlcmd.Format("SELECT *FROM Controller WHERE parent='%s' and addr='%s'",addr1,addr2); 
      

  4.   

    [code=sql]SELECT *FROM Controller WHERE parent LIKE '%s' AND addr LIKE '%s'[code]
    等号是完全相等,估计你是找包含吧,要用 LIKE(虽然你贴图中没有以s结尾的数据)。
      

  5.   

    查询到某一行,修改forbidden的值
      

  6.   


    匹配用Like '%s'=是必须字段值与条件全相等
      

  7.   


    源代码//************打开表格*********
    m_pRecordset.CreateInstance(__uuidof(Recordset));  
    try  //parent,addr,forbidden,anal0,anal1,anal2,anal3,ratnum0,ratnum1,ratnum2,ratnum3,ratpow0,ratpow1,ratpow2,ratpow3,input,output  FROM Controller
    {  
    sqlcmd.Format("SELECT * FROM Controller WHERE (parent='%s')+(addr='%s')",addr1,addr2); 
    m_pRecordset->Open(_variant_t(sqlcmd),_variant_t((IDispatch*)m_pConnection,true),adOpenStatic,adLockOptimistic,adCmdText);    }  
    catch(_com_error& e)  
    {  
    MessageBox(e.Description(),"提示",0);  
    }
    //************修改数据*********
    try  

    if(!m_pRecordset->BOF)
    {
    if(forbid)
    {
    m_pRecordset->PutCollect("forbidden", _variant_t("1111"));
    }
    else
    {
    m_pRecordset->PutCollect("forbidden", _variant_t("0000"));
    } m_pRecordset->PutCollect("ratnum0", _variant_t(ratnum));
    m_pRecordset->PutCollect("ratnum1", _variant_t(ratnum));
    m_pRecordset->PutCollect("ratnum2", _variant_t(ratnum));
    m_pRecordset->PutCollect("ratnum3", _variant_t(ratnum)); m_pRecordset->PutCollect("ratpow0", _variant_t(ratpow));
    m_pRecordset->PutCollect("ratpow1", _variant_t(ratpow));
    m_pRecordset->PutCollect("ratpow2", _variant_t(ratpow));
    m_pRecordset->PutCollect("ratpow3", _variant_t(ratpow)); m_pRecordset->Update();
    g_smsg="\""+addr1+":"+addr2+"\""+"数据添加成功"; 
    }
    }
    catch(_com_error& e)  
    {  
    AfxMessageBox(e.Description());
    }
      

  8.   

    模糊搜索用like '%filedValue%'
      

  9.   

    加断点,看 sqlcmd 是什么内容。
      

  10.   

    这张表特点是没有主键,只有根据parent,addr同时符合比如“parent=h000和addr=01”时才能确定一行数据,怎么用SQL语句写出来????????????????????????????????????????
      

  11.   

    查询条件和是否有主键没有关系。
    先把 sqlcmd 打出来;再全表查询,结果用csv的文本格式。
    检查下你认为应该选中的记录,很可能是末尾的空格差异,导致看起来是匹配的实际是不符合条件的。
      

  12.   

    那你的format里面的写法不对撒。
      

  13.   

    按楼主的意思,假如要查询到第一行数据select  *  from Controller  WHERE parent='h000' AND addr='01'
      

  14.   

    select * from (SELECT ROW_NUMBER()OVER(PARTITION BY a,b ORDER BY a)mp,* FROM tabname)
    WHERE mp=1