作者xep72345 (gorilla)
看板C_Sharp
標題Re: [問題] 一次性的判斷式
時間Wed Nov 5 16:15:32 2014
※ 引述《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