![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 瑋呈洪 ![]()
![]() |
{ timer1.Interval = 2000; timer1.Enabled = true; if (textBox1.TextLength >=4 && timer1.Enabled==true ) { try { oleDbConnection1.Open(); string s; s = "insert into Processing(產品編號,加工時間) values('" + textBox1.Text + "','" + DateTime.Now + "')"; oleDbCommand1.CommandText = s; oleDbCommand1.ExecuteNonQuery(); textBox1.Text = null; processingBindingSource.AddNew(); timer1.Enabled = false; oleDbConnection1.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); return; } } } private void textBox2_TextChanged(object sender, EventArgs e) { timer2.Interval = 2000; timer2.Enabled = true; if (textBox2.TextLength > 3 && timer2.Enabled == true) { try { oleDbConnection1.Open(); string s; s = "update Processing set 加工完成="+ DateTime.Now +" where 產品編號='"+textBox2+"'"; oleDbCommand1.CommandText = s; oleDbCommand1.ExecuteNonQuery(); textBox2.Text = null; oleDbConnection1.Close(); timer2.Enabled = false; } catch (Exception ex) { MessageBox.Show(ex.Message); return; } } } 問題一: 我在執行textBox1_TextChanged時 輸入編號 確實可以加入我想要的東西 但是每次他在執行到第4次 也就是要加入第4筆資料時 鼠標就會顯是一個讀取中的圖市 然後並沒有將我要的資料加入資料庫 在開啟後 它會說 連接未關閉。連接目前的狀態為開啟。 但是我確實有在 程式內加入oleDbConnection1.Close(); 跑前面幾次也沒問題 為甚麼會突然到第四次出問題 問題二: 執行textBox2_TextChanged時, s = "update Processing set 加工完成="+ DateTime.Now +" where 產品編號='"+textBox2+"'"; 並沒有將我需要更新的資料 更新回資料庫 難道我有打錯嗎... 產品編號 我肯定是有核對過 不會是資料庫沒有我讀入的產品編號
搜尋相關Tags的文章:
[ c#資料庫提問 ] ,
本篇文章發表於2017-08-28 13:33 |
1樓
最有價值解答
春天 ![]() |
問題一
你只有在try裡面close dbConnection 如果在關閉前就發生catch就不會執行關閉 try-catch-finally 問題二 DateTime.Now 是無法直接轉成MS SQL的dateTime格式的 s = "update Processing set 加工完成= CONVERT(DATETIME, "+ DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss.fff") +", 121) where 產品編號='"+textBox2+"'";
本篇文章回覆於2017-08-28 14:07
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
2樓 | |
3樓
作者回應
瑋呈洪 ![]() |
查詢運算式 'CONVERT(DATETIME, 2017-08-28 14:44:05.022, 121)' 中的 語法錯誤 (少了運算元)。
是哪裡少了嗎 我是寫你那個程式的 偵錯沒有錯誤 執行才出現這個
本篇文章回覆於2017-08-28 14:47
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
4樓
作者回應
瑋呈洪 ![]() |
s = "update Processing set 加工完成='" +DateTime.Now+ "' where 產品編號='" + 40427220+ "'";
我利用button 觸發 datetime是可以輸入近資料庫的 所以現在是 我textbox2的編號 明明有和我限制的條件 where 一樣 但卻無法觸發update
本篇文章回覆於2017-08-28 14:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
5樓 |
s = "update Processing set 加工完成= Now() where 產品編號='"+textBox2+"'";
試試這樣
本篇文章回覆於2017-08-28 14:59
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
6樓 |
請問你資料庫用的是MS-SQL還是MySql?不同資料庫的語法會不大一樣。
另外,你下中斷點去看看跑出來的SQL是什麼, 直接將那段拿去資料庫軟體執行看看能不能正常執行, 如果可以正常執行就不是語法的問題,而是其他的問題。
本篇文章回覆於2017-08-28 19:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
7樓 |
用參數式查詢不就甚麼都解決了,為什麼一定要搞這種用起來麻煩的要命然後風險又高的解法?
本篇文章回覆於2017-08-28 22:39
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
回覆 |
如要回應,請先登入. |