gpt4 book ai didi

mysql - 开发 "Error on executing DbCommand."

转载 作者:行者123 更新时间:2023-11-29 07:06:39 28 4
gpt4 key购买 nike

您好,我在使用 Devart 时遇到过这种异常情况。我在 MySql 中调用存储过程。存储过程函数,如果我通过数据库调用它。

    using (dc = conn.GetContext())
{
result = dc.StoreProcedure(pId).FirstOrDefault();
}
return result;

[MySqlException (0x80004005): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '(7003172) t1 LIMIT 1' at line 2]
Devart.Data.MySql.bk.s() +270
Devart.Data.MySql.bk.d() +200
Devart.Data.MySql.v.a(ah[]& A_0, Int32& A_1) +134
Devart.Data.MySql.v.a(Byte[] A_0, Int32 A_1, Boolean A_2) +106
Devart.Data.MySql.a3.e() +169
Devart.Data.MySql.a3.o() +89
Devart.Data.MySql.MySqlCommand.InternalExecute(CommandBehavior behavior, IDisposable stmt, Int32 startRecord, Int32 maxRecords) +1472
Devart.Common.DbCommandBase.InternalExecute(CommandBehavior behavior, IDisposable stmt, Int32 startRecord, Int32 maxRecords, Boolean nonQuery) +48
Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior, Boolean nonQuery) +764
Devart.Common.DbCommandBase.ExecuteDbDataReader(CommandBehavior behavior) +38
System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader() +12
Devart.Data.Linq.Provider.DataProvider.a(b A_0, Object[] A_1, Object[] A_2, Object A_3) +1436
[LinqCommandExecutionException: Error on executing DbCommand.]
Devart.Data.Linq.LinqCommandExecutionException.a(String A_0, Exception A_1) +79
Devart.Data.Linq.Provider.DataProvider.a(b A_0, Object[] A_1, Object[] A_2, Object A_3) +5349
Devart.Data.Linq.Provider.DataProvider.a(b A_0, Object[] A_1) +65
Devart.Data.Linq.Provider.DataProvider.h(Expression A_0) +189
Devart.Data.Linq.DataQuery`1.System.Linq.IQueryProvider.Execute(Expression expression) +53
System.Linq.Queryable.FirstOrDefault(IQueryable`1 source) +269`

最佳答案

显然,问题在于该过程在模型中被标记为“流水线”。在这种情况下,假设过程有一个返回值,它是一个结果集。因此,LinqConnect 运行时会尝试从此结果集中执行选择(由于使用了“FirstOrDefault”方法,所以以“limit 1”子句结尾)。

由于 MySql 函数无法检索结果集作为返回值,此行为会导致 MySQL 错误。要解决此问题,请尝试将此过程的“Pipelined”属性设置为“false”。

关于mysql - 开发 "Error on executing DbCommand.",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6940663/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com