Re: [問題] 一次性的判斷式

作者: xep72345 (gorilla)   2014-11-05 16:15:32
※ 引述《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();
}
}
作者: GoalBased (Artificail Intelligence)   2013-10-27 09:07:00
在資料庫板就跟你說過要用update了..
作者: vivi303030 (wengogogogo)   2013-10-28 10:07:00
當你抓到開始時間及結束時間時,update回db!這樣不行
作者: yishin0517 (回台灣了)   2013-10-30 23:08:00
請善用變數作為比較基準值
作者: neo5277 (I am an agent of chaos)   2014-11-05 20:52:00
stopwatch好像可以前後一次但是不知道能不能格式化
作者: wheattea (麥香紅茶)   2014-11-06 08:56:00
再寫入時間前多加一個旗標 0=寫入開始時間 1=寫入結束時間 寫過一次後期標變2 之類的

Links booklink

Contact Us: admin [ a t ] ucptt.com