我有一个使用VS 2010高级版编写的C#应用程序,实现了与MS Access 2003数据库连接的强类型数据集。在这个数据集中,我正在实现一个表适配器,其SQL脚本如下:
SELECT [ID], [Name], [Created By]
FROM [Table Group]
WHERE [Created By] = ?
AND [ID] IN (SELECT [Group ID] FROM [Table Clustering] WHERE [Cluster ID] = ?)
ORDER BY [Name]
问题是它没有返回任何东西,但实际上应该返回(我的数据库中有示例数据)。我已经尝试在MS Access中实现相同的脚本(用实际数据替换?),它返回了我期望的数据。
我尝试通过在嵌入式SELECT语句中删除“WHERE [Cluster ID] =?”来进行实验,它返回了数据,但这不是我需要的。
我还通过将嵌入式SELECT语句中的?替换为实际的[Cluster ID]进行了另一个实验,它返回了数据,但这仍然不是我需要的。
那么表适配器中的SQL脚本问题出在哪里?它能够实现SELECT中的SELECT吗?此外,它能够在SELECT中实现?如何实现?
谢谢!=)
如预期的那样,IDE自动为我创建了一个方法(用于检索数据),因此我不需要手动在代码中创建SQL脚本...对于每个人的信息(如果您不熟悉),生成的方法要求两个参数(如预期),一个用于[Created By],一个用于[Cluster ID]...从这里开始,请参考我上面发布的问题。:D
WHERE [Created By] = @CreatedBy
并且使用Parameters.AddWithValues(@parameter name, @parameter value);
..? - MethodMan