PetaPoco存储过程错误“;关键字';附近的语法不正确;来自'";}

本文关键字:不正确 语法 来自 quot 关键字 错误 存储过程 PetaPoco | 更新日期: 2023-09-27 18:21:31

我将C#与TSQL和SQL Server 2005 一起使用

我正在尝试使用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错误。

起初,我使用了一个带有paramaters的存储过程,而@字符导致了一个问题,一旦用@@修复了这个问题,我就开始出现这个错误,所以我用一个简单的select语句创建了一个存储过程。该过程在ManagementStudio中执行得非常好。

将PetaPoco与select语句一起使用是很好的,并且数据可以完全映射到动态或对象模型。我创建了一个垃圾SQL字符串,它返回了相同的错误,这就是我获得一般错误想法的原因。

这是我正在使用的选择,它可以很好地进行

var dynTest =
                db.Query<dynamic>(
                   "SELECT TOP 10 * FROM [BI].[dbo].[Managers] ORDER  BY [ConsecutiveDays] desc");

PetaPoco存储过程错误“;关键字';附近的语法不正确;来自'";}

它试图在前面附加select子句。
如果你在查询的开头放了一个";",它不会试图附加它。

PetaPoco假设您想要执行SELECT,如果不包括SELECT,则会推断出一个SELECT。为了避免进行自动选择,您应该使用:

db.EnableAutoSelect = false;

在查询之前。