反馈BUG 返回

C#论坛 老数据
3 3254

问题描述 C# 操作MYSQL

首先执行

foreach (var dr in list)

{

sql += string.Format(" INSERT INTO db_core.tb_pricelist_info (WERKS, MATNR, RTYPE, Onhand, Weight,  OpenSO, OpenPO, ResQty, sapATR, sapCOST, CacheDateTime) values " +

 "('{0}','{1}','{2}',{3},{4},{5},{6},{7},{8},{9},'{10}') " +

 "on duplicate key update  Onhand ={3} ,  Weight={4}, OpenSO={5}, OpenPO={6}, ResQty={7},  sapATR={8}, sapCOST={9},  CacheDateTime='{10}'; ",

 dr.P_WERKS, dr.P_MATNR, dr.P_STATUS, dr.RTN_ONHAND, dr.RTN_WEIGHT, dr.RTN_OPENSO, dr.RTN_OPENPO, dr.RTN_RVATIN, dr.RTN_MATATR, dr.RTN_ZPRS, tNow.ToString("yyyy-MM-dd HH:mm:ss"));

}

if (sql != "")

{

dbClient.ExecuteCommand(sql);

}


其次执行 

var vwsjfood = dbClient.Queryable<vw_sjfood>().Where(p => p.WERKS == WERKS && p.MATNR == MATNR).ToList();

最后得到的vwsjfood  是旧数据.没有使用事务 


使用调试再次执行 

vwsjfood = dbClient.Queryable<vw_sjfood>().Where(p => p.WERKS == WERKS && p.MATNR == MATNR).ToList();

得到更新后的数据

热忱回答3

  • 作者大人不要不理我啊

    0 回复
  •  這裡問題找到了,是MYSQL  on duplicate key update  語句的問題, 它的更新效率非常低下,,  我這裏出現的問題,實際上只是執行了兩條語句,但是更新動作卻要差不多8s , 也有可能是服務器在不斷的跑這個更新的原因.此貼完結

    0 回复
  • 抱走 抱走 VIP0
    2017/7/5

    这个类库基础的功能, 解释 lambda表达式,生成sql字符串和参数对象, 通过ado.net执行,最后序列化(mapping),类库有个记录日志的功能,可以记录生成的sql字符串和参数对象, 可以查看这个日志,看看执行的sql是否和我们想要的一致,如果是, 剩下的就是调试这sql执行的效率和排查sql的问题了

    0 回复