我正在使用带有TSQL和SQL Server 2005的C#
我正在尝试使用PetaPoco将数据集作为对象列表返回。这是我刚刚使用的代码
var s = PetaPoco.Sql.Builder.Append("USE [BI] EXEC [dbo].[TestProcedure2];");
var result = db.Query<dynamic>(s);
var result2 = db.Query<dynamic>("USE [BI] EXEC [dbo].[TestProcedure2];");
我认为错误消息是petaPoco失败时的一般sql错误。
起初我使用带有参数的存储过程,并且@字符导致了问题,一旦用@@修复了,我开始收到此错误,因此我使用简单的select语句创建了一个存储过程。该过程在Management Studio中执行完全正常。
将PetaPoco与select语句一起使用很好,数据完全可以映射到动态或对象模型。我创建了一个垃圾SQL字符串,它返回了相同的错误,这是我从中得到一般错误的想法。
这是我使用的选择正常
var dynTest =
db.Query<dynamic>(
"SELECT TOP 10 * FROM [BI].[dbo].[Managers] ORDER BY [ConsecutiveDays] desc");
答案 0 :(得分:2)
它试图将select子句附加在它前面。
如果你把“;”在查询开始时,它不会尝试追加它。
答案 1 :(得分:1)
PetaPoco假设您要执行SELECT,如果您不包含SELECT,则会推断出一个。 为避免执行自动SELECT,您应该使用:
db.EnableAutoSelect = false;
在查询之前。