【问题标题】:Multiple values of the same column name in SQLSQL中同一列名的多个值
【发布时间】:2011-05-17 14:06:45
【问题描述】:

这似乎是一个奇怪的问题,之前我通过会话变量发布了另一个关于 ASP 多个值的问题,现在我已经弄清楚了,并设法将所有三个值都传递给了一个标签。但是现在我需要传递三个 ID 来为这三个值创建一个网格视图......所以对于我的 SQL 语句,我有:

SelectCommand="SELECT [BookID], [book_title] FROM [tblBook] WHERE ([BookID] = ?)">

所以我需要有 3 个 BookID=?,?,?例如,这可能吗?

或者在 ASP 中还有其他方法吗?

【问题讨论】:

    标签: c# asp.net sql sqlcommand


    【解决方案1】:

    我认为您正在寻找的是这样的:

    SELECT [BookID], [book_title] FROM [tblBook] WHERE [BookID] in (?,?,?)
    

    【讨论】:

      【解决方案2】:

      我不确定你的问题,但我认为你是在 IN 声明之后

      SelectCommand="SELECT [BookID], [book_title] FROM [tblBook] WHERE ([BookID] in (1,2,3)">
      

      【讨论】:

        【解决方案3】:

        在 SQL 中,您可以使用“IN”运算符来执行此操作。 SQL 查询将是

        SELECT [BookID], [book_title] FROM [tblBook] WHERE [BookID] IN (@Book1,@Book2,@Book3)
        

        您必须将 book1、2、3 作为参数传递给 asp 函数。您可能必须通过附加参数来动态构造查询。像这样的

        string query = string.Format("SELECT [BookID], [book_title] FROM [tblBook] WHERE [BookID] IN ({0},{1},{2})",book1,book2,book3)
        

        【讨论】:

        • 您应该使用 IN 运算符,但要小心不要将字符串变量直接放入 SQL 查询中 - 这会使您容易受到 sql 注入攻击。
        • @vincebowden----我完全同意你的看法。但在这种情况下,它看起来像是一个学术项目。在大多数专业项目中,查询将使用 L2S 或存储过程或其他技术发出。
        • @vincebowden --- 我给了你一个 +1 指出 sql 注入攻击
        猜你喜欢
        • 1970-01-01
        • 2016-09-06
        • 1970-01-01
        • 2021-10-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-05-17
        相关资源
        最近更新 更多