連接數據庫用的是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);