看板 C_Sharp 關於我們 聯絡資訊
※ 引述《xep72345 (gorilla)》之銘言: 各位前輩你們好,很謝謝你們花時間進來看這篇文章 最近製作一個小的監控警報系統 當 if 變數=1 會插入開始時間 else if 當變數=0 會插入結束時間 但是在設備還沒有啟動之前,就已經開始記錄結束時間, 當設備運轉也會連同把運轉內的時間記錄下來, 沒辦法當純只記錄啟動瞬間的時間,跟結束瞬間的時間。 不知道是否有前輩遇過像這種問題,可否分享經歷或指點方向給小弟,謝謝。 private void DisplayText(object sender, EventArgs e) { string b = data.Substring(2, 1); ///從設備回應回來的值,擷取出來 if (b == "1") ///當Y0 ON B會等於1 { timer2.Enabled = true; label1.Text = "運轉中"; ///圖示跟LABLE 轉換 DateTime time = DateTime.Now; //寫入開始時間 string dt = "yyyy-MM-dd hh:mm:ss"; string cn = "Provider = Microsoft.Jet.OLEDB.4.0; " + "Data Source=C:\\Users\\he-hsin\\desktop\\test\\main.mdb"; OleDbConnection db = new OleDbConnection(cn); db.Open(); String strSQL = "INSERT INTO start_time (starttime) VALUES ('" + time.ToString(dt) + "')"; OleDbCommand oleCmd = new OleDbCommand(strSQL, db); oleCmd.ExecuteNonQuery(); db.Close(); } else if (b=="0") ///當Y0 OFF B會等於0 { timer2.Enabled = false; label1.Text = "未運轉"; pictureBox1.Image = imageList1.Images[0]; ///圖示跟LABLE 轉換 DateTime time = DateTime.Now; //寫入結束時間 string dt = "yyyy-MM-dd hh:mm:ss"; string cn = "Provider = Microsoft.Jet.OLEDB.4.0; " + "Data Source=C:\\Users\\he-hsin\\desktop\\test\\main.mdb"; OleDbConnection db = new OleDbConnection(cn); db.Open(); String strSQL = "insert into end_time (endtime) VALUES ('" + time.ToString(dt) + "')"; OleDbCommand oleCmd = new OleDbCommand(strSQL, db); oleCmd.ExecuteNonQuery(); db.Close(); } } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 111.243.189.142 ※ 文章網址: http://www.ptt.cc/bbs/C_Sharp/M.1414365426.A.1B2.html
GoalBased: 在資料庫板就跟你說過要用update了.. 10/27 09:07
vivi303030: 當你抓到開始時間及結束時間時,update回db!這樣不行 10/28 10:07
yishin0517: 請善用變數作為比較基準值 10/30 23:08
非常感謝各位幫助,問題順利解決。 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 115.82.117.53 ※ 文章網址: http://www.ptt.cc/bbs/C_Sharp/M.1415175335.A.A97.html
neo5277: stopwatch好像可以前後一次但是不知道能不能格式化 11/05 20:52
wheattea: 再寫入時間前多加一個旗標 0=寫入開始時間 1=寫入結束 11/06 08:56
wheattea: 時間 寫過一次後期標變2 之類的 11/06 08:57