我需要从c#.net代码中匹配时间戳的表中选择记录,说2000。 如:选择多个记录的存储过程
SELECT *
FROM ITEMDATA_TABLE
WHERE ITEMNAME='Item1' and TimeStamp='2010-04-26 17:15:05.667'
上面的查询必须执行2000年项目多为相同的时间戳。
这一点,我们可以从SQL Server Management Studio中使用
SELECT *
FROM ITEMDATA_TABLE
WHERE ITEMNAME in ('Item1','Item2','Item3','Item4',......)
AND TimeStamp='2010-04-26 17:15:05.667'
。
我已经尝试了所有附加的项目名称,将一个字符串变量,并给它作为参数传递给存储过程,但它导致成一个错误的级联。
我怎么能做到这一点从.NET代码执行存储过程? 任何人都可以建议我/纠正我这样做吗?
它可能更容易(这是有争议的),但它不会是正确的。最好让数据库返回正确的结果集。检索和过滤数据是数据库的功能。它也会产生更少的网络流量。 – APC 2010-04-26 12:20:28
这确实取决于知道多少元信息。如果在实践中除了少数几行产生的时间戳之外的所有内容都将被返回,那么返回所有内容并在调用者处过滤少量内容是更好的解决方案。当然,通过在服务器上使用其他技术和过滤完全避免长的IN列表通常是优选的。 – 2010-04-26 14:59:11