C#下利用parameter參數化集合對MySQL數據庫進行Update時遇到的問題

     連接數據庫用的是5.2.3.0版本MySQL.data.dll ,期間遇到幾個小問題,記錄一下

      一、在進行mysql參數化傳值、時出現錯誤Fatal error encountered during command execution搞了半天才明白好像是parameter中加入條件後需要SQL語句參數自定義化,然後就是在 連接字符串里加上 :Allow User Variables=True

server=;port=3306;user=root;password=1111; database=shujukuming;CharSet=gb2312;Allow User Variables=True;"

二、 在sql語句利用ExecuteNonQuery方法來判斷是否寫入是發現老是寫入失敗本以爲是符號“@”和“?",不同的問題,後來發現不是,最後發現是參數多一個空格。。。。所以以後要多細心,浪費我兩三個小時的時間。

 三、關於在parameter中使用"@"還是"?"符號的問題,我簡單做了下實驗,發現都可以。。。。還請各位大佬多多指教

?佔位符;@:局部變量聲明。

代碼如下

1。

 string sql = "UPDATE table.componentall SET  StartHoistingTime = ?StartHoistingTime,LiftingTime = ?LiftingTime,anzhuangSuperintendent = ?anzhuangSuperintendent,anzhuangScheduleStatus = ?anzhuangScheduleStatus WHERE componentRFID = ?componentRFID";  
        
           MySqlParameter StartHoistingTime = new MySqlParameter("?StartHoistingTime", es.StartHoistingTime);
           MySqlParameter LiftingTime = new MySqlParameter("?LiftingTime", es.LiftingTime);
           MySqlParameter anzhuangSuperintendent = new MySqlParameter("?anzhuangSuperintendent", es.anzhuangSuperintendent);
           MySqlParameter anzhuangScheduleStatus = new MySqlParameter("?anzhuangScheduleStatus", es.anzhuangScheduleStatus);
           MySqlParameter componentRFID = new MySqlParameter("?componentRFID ", es.componentRFID);          
           return DBHelper.ExecuteNonQuery(sql, StartHoistingTime, LiftingTime, anzhuangSuperintendent, anzhuangScheduleStatus, componentRFID);
         

2.

 string sql = "UPDATE table.componentall SET  StartHoistingTime = @StartHoistingTime,LiftingTime = @LiftingTime,anzhuangSuperintendent = @anzhuangSuperintendent,anzhuangScheduleStatus = @anzhuangScheduleStatus WHERE componentRFID = @componentRFID";  
        
           MySqlParameter StartHoistingTime = new MySqlParameter("@StartHoistingTime", es.StartHoistingTime);
           MySqlParameter LiftingTime = new MySqlParameter("@LiftingTime", es.LiftingTime);
           MySqlParameter anzhuangSuperintendent = new MySqlParameter("@anzhuangSuperintendent", es.anzhuangSuperintendent);
           MySqlParameter anzhuangScheduleStatus = new MySqlParameter("@anzhuangScheduleStatus", es.anzhuangScheduleStatus);
           MySqlParameter componentRFID = new MySqlParameter("@componentRFID ", es.componentRFID);          
           return DBHelper.ExecuteNonQuery(sql, StartHoistingTime, LiftingTime, anzhuangSuperintendent, anzhuangScheduleStatus, componentRFID);

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章