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");
它试图在前面附加select子句。
如果你在查询的开头放了一个";",它不会试图附加它。
PetaPoco假设您想要执行SELECT,如果不包括SELECT,则会推断出一个SELECT。为了避免进行自动选择,您应该使用:
db.EnableAutoSelect = false;
在查询之前。