兼容模式 在 使用表达式更新 时字段名的括号边会多出空格的问题 返回

SqlSugar 沟通中
10 259
该叫什么 \u0001\u 发布于2周前
悬赏:0 飞吻

实体:

QQ111111111111111111111111.png


程序:

QQ22222222222222222222222222.png


报错:

QQ3333333333333333.png


把表达式转换成SQL语句时括号处多加了空格。

热忱回答10

  • SqlSugarCore 5.1.4.176-preview11


    更新到最新预览版本已支持

    0 回复
  • @fate sta

    更新后原来可以运行的代码报错了,报错的信息如下:

    [Sql]:UPDATE [数码印刷工作表]  SET

                [实收] =(ISNULL([应收],@MethodConst2) * @Const3 , [实收印制费] =((( CASE  WHEN (((ISNULL([印刷费],@MethodConst15) +ISNULL([设计制作费],@MethodConst16)) + ISNULL([其他费用],@MethodConst17)) =  @Const18 ) THEN @MethodConst19  ELSE (ISNULL([印刷费],@MethodConst20) /((ISNULL([印刷费],@MethodConst21) +ISNULL([设计制作费],@MethodConst22)) + ISNULL([其他费用],@MethodConst23))) END ) *ISNULL([应收],@MethodConst24)) *  @Const25 , [实收设计费] =((( CASE  WHEN (((ISNULL([印刷费],@MethodConst37) +ISNULL([设计制作费],@MethodConst38)) + ISNULL([其他费用],@MethodConst39)) =  @Const40 ) THEN @MethodConst41  ELSE (ISNULL([设计制作费],@MethodConst42) /((ISNULL([印刷费],@MethodConst43) +ISNULL([设计制作费],@MethodConst44)) + ISNULL([其他费用],@MethodConst45))) END ) *ISNULL([应收],@MethodConst46)) *  @Const47   WHERE ( [收款单号] = @p1121269290no48 )

    [Pars]:

    [Name]:@MethodConst0 [Value]:0 [Type]:Decimal

    [Name]:@Const1 [Value]:0.8474576271186440677966101695 [Type]:Decimal

    [Name]:@MethodConst2 [Value]:0 [Type]:Decimal

    [Name]:@Const3 [Value]:0.8474576271186440677966101695 [Type]:Decimal

    [Name]:@MethodConst4 [Value]:0 [Type]:Decimal

    [Name]:@MethodConst5 [Value]:0 [Type]:Decimal

    [Name]:@MethodConst6 [Value]:0 [Type]:Decimal

    [Name]:@Const7 [Value]:0 [Type]:Decimal

    [Name]:@MethodConst8 [Value]:1 [Type]:Decimal

    [Name]:@MethodConst9 [Value]:0 [Type]:Decimal

    [Name]:@MethodConst10 [Value]:0 [Type]:Decimal

    [Name]:@MethodConst11 [Value]:0 [Type]:Decimal

    [Name]:@MethodConst12 [Value]:0 [Type]:Decimal

    [Name]:@MethodConst13 [Value]:0 [Type]:Decimal

    [Name]:@Const14 [Value]:0.8474576271186440677966101695 [Type]:Decimal

    [Name]:@MethodConst15 [Value]:0 [Type]:Decimal

    [Name]:@MethodConst16 [Value]:0 [Type]:Decimal

    [Name]:@MethodConst17 [Value]:0 [Type]:Decimal

    [Name]:@Const18 [Value]:0 [Type]:Decimal

    [Name]:@MethodConst19 [Value]:1 [Type]:Decimal

    [Name]:@MethodConst20 [Value]:0 [Type]:Decimal

    [Name]:@MethodConst21 [Value]:0 [Type]:Decimal

    [Name]:@MethodConst22 [Value]:0 [Type]:Decimal

    [Name]:@MethodConst23 [Value]:0 [Type]:Decimal

    [Name]:@MethodConst24 [Value]:0 [Type]:Decimal

    [Name]:@Const25 [Value]:0.8474576271186440677966101695 [Type]:Decimal

    [Name]:@MethodConst26 [Value]:0 [Type]:Decimal

    [Name]:@MethodConst27 [Value]:0 [Type]:Decimal

    [Name]:@MethodConst28 [Value]:0 [Type]:Decimal

    [Name]:@Const29 [Value]:0 [Type]:Decimal

    [Name]:@MethodConst30 [Value]:0 [Type]:Decimal

    [Name]:@MethodConst31 [Value]:0 [Type]:Decimal

    [Name]:@MethodConst32 [Value]:0 [Type]:Decimal

    [Name]:@MethodConst33 [Value]:0 [Type]:Decimal

    [Name]:@MethodConst34 [Value]:0 [Type]:Decimal

    [Name]:@MethodConst35 [Value]:0 [Type]:Decimal

    [Name]:@Const36 [Value]:0.8474576271186440677966101695 [Type]:Decimal

    [Name]:@MethodConst37 [Value]:0 [Type]:Decimal

    [Name]:@MethodConst38 [Value]:0 [Type]:Decimal

    [Name]:@MethodConst39 [Value]:0 [Type]:Decimal

    [Name]:@Const40 [Value]:0 [Type]:Decimal

    [Name]:@MethodConst41 [Value]:0 [Type]:Decimal

    [Name]:@MethodConst42 [Value]:0 [Type]:Decimal

    [Name]:@MethodConst43 [Value]:0 [Type]:Decimal

    [Name]:@MethodConst44 [Value]:0 [Type]:Decimal

    [Name]:@MethodConst45 [Value]:0 [Type]:Decimal

    [Name]:@MethodConst46 [Value]:0 [Type]:Decimal

    [Name]:@Const47 [Value]:0.8474576271186440677966101695 [Type]:Decimal

    [Name]:@p1121269290no48 [Value]:54136 [Type]:Int32

    [Name]:@编号 [Value]:0 [Type]:Int32


    fail: Microsoft.AspNetCore.Components.Server.Circuits.CircuitHost[111]

          Unhandled exception in circuit 'MxIKqPY1AW_ECjCy_bSnZJE1ro8zIHgqFMRn9xQ0lxk'.

          Microsoft.Data.SqlClient.SqlException (0x80131904): ',' 附近有语法错误。

          关键字 'CASE' 附近有语法错误。

          'ISNULL' 附近有语法错误。

          关键字 'CASE' 附近有语法错误。

          'ISNULL' 附近有语法错误。

             at SqlSugar.AdoProvider.ExecuteCommand(String sql, SugarParameter[] parameters)

             at SqlSugar.UpdateableProvider`1.ExecuteCommand()

             at HtERP.Components.Pages.HtReceipt.计算各项实收(Int32 i, Decimal b) in E:\MEG_Pro\repo\HtPrintMGT\HtERP\Components\Pages\HtReceipt.razor:line 784

             at System.Threading.Tasks.Task.<>c.<ThrowAsync>b__128_0(Object state)

             at Microsoft.AspNetCore.Components.Rendering.RendererSynchronizationContext.PostAsync[TState](Task antecedent, Action`1 callback, TState state)

          ClientConnectionId:a3895487-6a51-4a27-9596-9592a68436a4

          Error Number:102,State:1,Class:15


    0 回复
  • 对比一下同一段代码生成的SQL语句:

    yyy.png

    zzz.png

    xxxx.png

    0 回复

  • 为了减少沟通,提供建表脚本和DEMO ,删掉obj和bin打包上传

    0 回复
  • 0 回复
  • 给脚本建表肯定不支持你这种兼容模式

    0 回复
  • 修复了

    0 回复
  • SqlSugarCore 5.1.4.176-preview15


    已修复

    0 回复
  • @fate sta:更新后问题解决了,万分感谢

    0 回复
  • 刚刚测试时发现一个问题:

    插入时报错

    [Sql]:INSERT INTO [Demo]

               ([Name],[长(mm)],[宽(mm)])

         VALUES

               (@Name,@CrorrPara0,@CrorrPara1) ;

    [Pars]:

    [Name]:@Name [Value]:mike [Type]:String

    [Name]:@长(mm) [Value]:20 [Type]:Double

    [Name]:@宽(mm) [Value]:30 [Type]:Double

    [Name]:@CrorrPara0 [Value]:20 [Type]:Double

    [Name]:@CrorrPara1 [Value]:30 [Type]:Double


    插入错误:Incorrect syntax near '('.

    Must declare the scalar variable "@CrorrPara0".


    附Demo

    括号问题_demo.zip


    0 回复