C# SQL中相同列名的多个值

C# SQL中相同列名的多个值,c#,asp.net,sql,sqlcommand,C#,Asp.net,Sql,Sqlcommand,这似乎是一个奇怪的问题,早些时候我通过一个会话变量发布了另一个关于ASP多个值的问题,现在我已经明白了这一点,并成功地将这三个值传递给了一个标签。但是现在我需要传递三个ID来为这三个值创建一个gridview。。。因此,对于我的SQL语句,我有: SelectCommand=“从[tblBook]中选择[BookID],[book\u title],其中([BookID]=?)”> 所以我需要有3个BookID=?,?,?例如,这可能吗 或者在ASP中有其他方法可以实现这一点吗?我认为您需要的是

这似乎是一个奇怪的问题,早些时候我通过一个会话变量发布了另一个关于ASP多个值的问题,现在我已经明白了这一点,并成功地将这三个值传递给了一个标签。但是现在我需要传递三个ID来为这三个值创建一个gridview。。。因此,对于我的SQL语句,我有:

SelectCommand=“从[tblBook]中选择[BookID],[book\u title],其中([BookID]=?)”>

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


或者在ASP中有其他方法可以实现这一点吗?

我认为您需要的是这样的:

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

我不确定你的问题,但我想你是在追求一个声明中的

SelectCommand="SELECT [BookID], [book_title] FROM [tblBook] WHERE ([BookID] in (1,2,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注入攻击