none
利用dataSet去連結Access 資料庫,要做like 的查詢。 RRS feed

  • 問題

  • 請問大家:

        我用,vs 2008 + Access 2003 ,利用Dateset 的方式,去連接。

        在做參數時,是用 ? 去建立查詢,都可以正確的查到資料。現在我想要做一個功能,就是用like 的方式,去查到資料,例如:Select * from user where name like '%' + ? + '%' and addr like '%' + ? + '%'  ,去做模糊查詢。也就是說,只要輸入名稱的任一個字,都能正確的查到。但是,用上述的方式是無法成功查詢到的,請問要怎麼正確的建立查詢呢?

        感謝指導

    2015年3月24日 上午 06:10

解答

  • 因為 Access SQL (Jet SQL) 的 Wildcard 不是 %

    參閱 Like Operator (Microsoft Access SQL)

    在  Using Wildcard Characters in String Comparisons

    有一段說明
    It is important to note that the ANSI SQL wildcards (%) and (_) are only
    available with Microsoft® Jet version 4.X and the Microsoft OLE DB
    Provider for Jet. They will be treated as literals if used through
    Microsoft Access or DAO.


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。


    2015年3月24日 上午 06:39
    版主

所有回覆

  • 因為 Access SQL (Jet SQL) 的 Wildcard 不是 %

    參閱 Like Operator (Microsoft Access SQL)

    在  Using Wildcard Characters in String Comparisons

    有一段說明
    It is important to note that the ANSI SQL wildcards (%) and (_) are only
    available with Microsoft® Jet version 4.X and the Microsoft OLE DB
    Provider for Jet. They will be treated as literals if used through
    Microsoft Access or DAO.


    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。


    2015年3月24日 上午 06:39
    版主
  • 除了樓上說的以外,也要注意 SQL Injection。

    強力監督SQL Injection問題!!

      • 小朱的技術隨手寫:http://www.dotblogs.com.tw/regionbbs/
      • 雲端學堂Facebook: http://www.facebook.com/studyazure

    2015年3月24日 上午 06:42
    版主