为什么我这样写会报致命错误 ? 返回

SqlSugar 老数据
3 1863
 return await TaskHelper.AsyncExecutionRezult(() =>
            {
                try
                {
                    using (SqlSugarClient DbObj = db.GetInstance(DB.db_core.GetAttributeValue()))
                    {
                        var query = DbObj.Queryable<tb_readonly_invoice_data>()

                            .WhereIF(inModel.MatnrList.IsAny(), p => p.MATNR, inModel.MatnrList)

                            .WhereIF(inModel.WerksList.IsAny(), p => p.WERKS, inModel.WerksList)

                            .WhereIF(inModel.FkdatStart != null, p => p.FKDAT >= inModel.FkdatStart)

                            .WhereIF(inModel.SalesGroup.IsNotNullOrEmpty(), p => p.VKGRP == inModel.SalesGroup)

                            ;

                        //string inStringSql = "";

                        //if (inModel.FkdatStart != null)
                        //{
                        //    inStringSql += " force index(idx_FKDAT) ";
                        //}

                        //string sqlResult = query.ToSql().Key.Insert(query.ToSql().Key.IndexOf("WHERE 1=1"),
                        //    inStringSql);

                        return DbObj.SqlQuery<tb_readonly_invoice_data>(query.ToSql().Key, query.ToSql().Value);
                    }
                }
                catch (Exception ex)
                {
                    log.Errorlog("E", Name, MethodBase.GetCurrentMethod().Name, ex.ToString());
                    return null;
                }
            });

image.png

但是我十分确认,我确实已经定义了这个参数 .

image.png

热忱回答3

  • 有没有用办法吧String转换为 new{a:1,b:b} 这种形式 ? 

    0 回复
  • 虫儿飞 虫儿飞 VIP0
    2020/11/13

    你的解决了吗,我的偶偶也会出现这个执行命令致命错误,百度说加上Allow User Variables=True根本解决不了,执行很简单的sql查询都这样有时候

    0 回复
  • Aaron 傲 Aaron 傲 VIP0
    2020/11/13

    @虫儿飞:还真的找到了 , 有一个超时参数 , 以s为单位计数,用之前把那个参数调大一点就好了 . 超时了也会报致命错误 . 

    DbObj.Ado.CommandTimeOut . 

    但是参数太大也会报错 , 你自己多试试几个 , 我自己一般用 60 * 60 *2 . 这样写的. 比较直观 . 

    这样写本身是不会有问题的. 

    0 回复