none
关于程序调用SQL参数的问题 RRS feed

  • 问题

  • 我这里用的是"数据集“的方式做了一个 select 查询,但在用IN做条件的时候,这个后面的参数用什么方式可以传进去

    就如:select * from t1 where id  in (@id),调用的时候  new  aaaa.select_db(传入一个参数)这种方式好像不行

    另外用like 做查询的时候,好像参数也不能用  like  @ID 这种方式

    除了SQL拼接以外,还有什么可以直接送这个@ID值 


    2017年9月14日 13:16

全部回复

  • Hi,

    在DataSet中配置IN子句参数的查询语句参考如下:

    一个参数:

    SELECT        ID, Name
    FROM            Catagories
    WHERE   ID IN (@ID1)

    ------------------------

    两个参数:

    SELECT        ID, Name
    FROM            Catagories
    WHERE   ID IN (@ID1,@ID2)

    ---------------

    配置Like子句参数的查询语句参考如下:

    SELECT        ID, Name
    FROM            Catagories
    WHERE        (Name LIKE '%' + @SEARCH + '%')

    然后通过GetData或者Fill方法传入参数来获取数据。

    上面的代码是针对的SQL server 数据库的, 因为你上一个问题表明你使用的数据库是Oracle, 所以查询语句的规则要匹配Oracle,我从网上查询一些关于Oracle数据库拼接sql 语句的例子,它使用的是冒号“:”,不是@符号,如:

    下面的两个链接在拼接Oracle sql 语句时,使用的都是:符号。
    http://www.doc88.com/p-7834230729926.html
    https://zhidao.baidu.com/question/1693051197524389948.html

    所以尝试一下这种语法(没有测试),

    SELECT        ID, Name
     FROM            Catagories
     WHERE        (Name LIKE '%' + :SEARCH + '%')

    Best Regards,

    Bob


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.




    2017年9月15日 5:57
  • SELECT        ID, Name
     FROM            Catagories
     WHERE        (Name LIKE '%' + :SEARCH + '%')

    这个在SQL里面,可以用,但在oracle 里面试了不行

    SELECT        ID, Name
    FROM            Catagories
    WHERE   ID IN (@ID1,@ID2)

    这个指定传参可以,但如果这个参数个数不固定,好像这个IN的问题,还是没办法解决

    2017年9月15日 11:55
  • Hi,

    >>这个在SQL里面,可以用,但在oracle里面试了不行

    因为该论坛不支持oracle查询语法规则的相关问题,如果你有任何关于oracle的问题,建议到Oracle的官方论坛去询问。

    >>这个指定传参可以,但如果这个参数个数不固定,好像这个IN的问题,还是没办法解决

    因为Fill或者GetData方法由Dataset Designer自动生成,你只能使用固定的参数个数,用C#执行数据库操作时,你完全可以使用C#语句拼接SQL IN查询。

    Best  Regards,

    Bob


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2017年9月16日 2:51
  • 好的,谢了~~

    2017年9月16日 3:21